1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Performance do Java

Discussão em 'Programação' iniciada por Lupino, 17 de Fevereiro de 2006. (Respostas: 9; Visualizações: 1113)

  1. Lupino

    Lupino I'm cool cuz I Fold

    Como aparece sempre alguém a falar mal da performance do Java... ou a dizer que o java é uma m@#$& só porque não sabem trabalhar com Java, decidi abrir este tópico para desmistificar de uma vez por todas que o Java afinal não é assim tão lento como algumas pessoas pensam.
    Para aqueles que dizem que o Java é uma m@#$&... a única conclusão que tiro... vocês pode ver aqui

    Em relação ao tópico podem ver uma comparação entre a performance do java VS c++
    http://kano.net/javabench/index
    http://kano.net/javabench/data

    Este teste foi realizado com a versão 1.4.2_01 JVM da Sun.

    Para terem uma noção do progresso das vm's da sun podem ver uma comparação entre as vm's 1.5(Tiger) e 1.6(Mustang).
    http://weblogs.java.net/blog/opinali/archive/2005/11/mustangs_hotspo.html


    Quem quiser refutar os testes está à vontade :x2:

    [[]]'s
     
  2. chight

    chight Power Member

    ?! java vs c++ ?

    e k tal java vs c# ?

    a questão destes testes é que podes implementar o fibonacci ou outro desses algoritmos de formas diferentes e usando estruturas de dados diferentes. logo os resultados podem ser biased.
     
  3. Lupino

    Lupino I'm cool cuz I Fold

    Por isso é que tens acesso ao código fonte utilizado nos testes...
    Achas que foi isso que aconteceu neste caso?

    [[]]'s
     
  4. TuxBoss

    TuxBoss Power Member

    Continua a ser ou biased propositadamente ou estupidamente.
    Se quer fazer os testes SÓ em x86 que faça entre java e código compilado com flags como deve ser, para aproveitar ao máximo as caracteristicas de cada processador.
    Não só isso mas por exemplo abri ao calhas um dos testes e deparei-me com isto...
    Código:
    //C++
    unsigned long fib(unsigned long n) {
        if (n < 2)
    	return(1);
        else
    	return(fib(n-2) + fib(n-1));
    }
    
    Código:
    //Java
    public static int fib(int n) {
    	if (n < 2) return(1);
    	return( fib(n-2) + fib(n-1) );
        }
    
    Promenor de na de C++ a funcão ser long e na de Java ser int...Biased?? Nah...:rolleyes:
     
  5. Tuaregue

    Tuaregue Power Member

    quem programa sabe que a apartir do 1.4 o Java deu um tremendo salto em termos de performance, e neste momento até que está com uma performance aceitável, veja-se o caso do azureus que é feito em java.
     
  6. TuxBoss

    TuxBoss Power Member

    Exactamente e depois vês o utorrent feito em C++ e compara as diferenças...
    Java é uma excelente linguagem em muitos aspectos, mas como tudo tem falhas. Uma dessas falhas é que 2 aplicações iguais tête-a-tête num ambiente real a de java vai ser muito mais lenta e resource-hog que uma feita em C++ ou C.
     
  7. Tuaregue

    Tuaregue Power Member

    Não compares o utorrent com o Azureus, são programas que fazem o mesmo na sua geneses, mas são totalmente diferente, o Azureus tem mais opções e afins e isso pesa. Mas é claro que todo (quase todo) o software que corre em cima de uma virtual machine vai ser mais lento, existem algumas execpções mas isso tem a ver com certos truques que fazem em algumas VM.
     
  8. Sandman

    Sandman Power Member

    Isso é tudo muito giro mas na minha opinião o Java funciona bem é em server-side. O overhead que a JVM cria ao iniciar dá sempre a percepção real de que o código é mais lento. Por outro lado a quantidade de recursos que é necessário para correr uma aplicação tamanho e complexidade médio/grande é brutal o que não abona muito a favor do Java.

    Eu reconheço que o Java tem alguns problemas mas a performance até nem é o maior deles. O problema são aqueles gajos que consideram o Java a melhor coisa do mundo e que este não tem defeitos... É o que dá quando se começa a criticar o ganha-pão de muita gente! :D
     
  9. Lupino

    Lupino I'm cool cuz I Fold

    O tamanho de um long em C++ é de 4 bytes.... O tamanho de um int em Java é de 4 bytes. :wow: Biased!?! Onde??!

    [[]]'s
     
  10. JPgod

    JPgod Moderador
    Staff Member

    o long e o int em C++ actual é a mesma coisa! (inteiros de 32 bits!!!)

    antes de existirem cpu's de 32 bits que o long era 32 bits e o int 16...

    portanto vai dar no mesmo ;)

    para os 64 bits utiliza-se o "long long"
     

Partilhar esta Página