Escolar Documentos
Profissional Documentos
Cultura Documentos
1
ÍNDICE DE FIGURAS
2
ÍNDICE DE TABELAS
Tabela 1 - Comparação de uso de recursos entre o código C++ e Java para 19 itens. .. 10
Tabela 2 - Comparação de uso de recursos entre o código C++ e Java para 500 itens. 12
Tabela 3 - Comparação de uso de recursos entre o código C++ e Java para 1000 itens.
........................................................................................................................................ 12
3
ÍNDICES DE GRÁFICOS
4
1. INTRODUÇÃO
5
1.1 OBJETIVO
1.2 METODOLOGIA
6
public class bubble_java {
public static void main(String[] args) {
int[] v = { 45, 12, 31, 67, 89, 45, 1, 89, 93, 5, 6, 55, 72,
102, 84, 92, 93, 42, 2 };
int i;
v = bubble(v);
for (i = 0; i < v.length; i++) {
System.out.println(v[i]);
}
}
7
à mais do que o código em C++, ou seja, 164,2 vezes mais demorado do que a execução
do código em C++.
A execução do código em C++ usou 7.307805 tarefas de relógio, enquanto a
execução do código em Java usou 251.589910 tarefas de relógio, 34,43 vezes mais do
que a execução do código em C++. Com relação as trocas de contexto, a execução do
código em C++ não utilizou nenhuma, já o código em Java precisou de 446 trocas de
contexto, e nenhum dos dois códigos precisou de migração de CPU. A execução do
código em C++ gerou 233 faltas de páginas, enquanto o código em Java gerou 2820
faltas de página, 12,1 vezes faltas de página à mais do que a execução do código em
C++. Para os itens ciclos, instruções, referências à cache e erros de cache, para ambos as
execuções os valores foram nulos.
8
Figura 5 - Resultado do comando ‘perf stat’ para o código em Java
9
Tipos de Códigos C++ Java
Migração de CPU 0 0
Ciclos 0 0
Instruções 0 0
Referências à cache 0 0
Tabela 1 - Comparação de uso de recursos entre o código C++ e Java para 19 itens.
10
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
int i;
system("PAUSE");
return EXIT_SUCCESS;
}
Figura 6 – Algoritmo que gera números aleatórios em C++
11
Tipos de Códigos C++ Java
Migração de CPU 0 0
Ciclos 0 0
Instruções 0 0
Referências à cache 0 0
Tabela 2 - Comparação de uso de recursos entre o código C++ e Java para 500 itens.
Migração de CPU 0 0
Ciclos 0 0
Instruções 0 0
Referências à cache 0 0
Tabela 3 - Comparação de uso de recursos entre o código C++ e Java para 1000 itens.
12
Gráfico 1 - Tempo de Execução dos códigos em Java e C++
13
2. CONCLUSÃO
Com base nos resultados obtidos, percebe-se que a execução do código em Java
apresentou uma performance muito inferior ao do código em C++, isto devido ao
código em Java ser interpretado pela Java Virtual Machine. Porém deve-se ressaltar a
vantagem da linguagem Java quanto à portabilidade oferecida pela Java Virtual
Machine, permitindo a execução de um mesmo arquivo semi-interpretado em Java em
diversas plataformas, incluindo, por exemplo, os Sistemas Operacionais Linux e o
Windows, e diversos Sistemas embarcados, já para o código em C++ é necessário que
ele seja compilado por compiladores específicos de cada Sistema Operacional para que
possa funcionar em diversas plataformas.
14
3. REFERÊNCIAS
Sun Virtual Box. Software da Sun que permite simular um sistema operacional através
da virtualização. Disponível em: <http://www.virtualbox.org/>. Acesso em 10 mar
2010.
15