Por que java fica tão lento na hora de compilar o codigo em relação as outras linguagens como c++?
Peraí, na hora de compilar ou de executar? O compilador java é muito mais rápido que o C++, pois não precisa resolver o local dos .h e não precisa substituir defines.
Agora, considerando dois algoritmos “ótimos” e idênticos a execução do Java tende a ser um pouco mais lenta em relação ao C++ por ser um interpretador. A VM, por mais que tenha otimizações, não se compara ao código nativo.
Entretanto, algoritmos “ótimos” são muito difíceis de se conseguir. Uma framework completa e cheia de algoritmos bem implementados, como a que vem por padrão no java, ajuda na obtenção de código rápido.
No que diz respeito à “lentidão” do Java, bom, depende muito do caso: há estudos por exemplo que comprovam ser o código Java se equiparam ou até mesmo superam C++ na performance:
Saca só este artigo de 2003:
http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
De lá pra cá as coisas melhoraram, sendo assim, para algoritmos numéricos (tal como descrito no artigo), se bobear, Java até superou C++.
Na realidade, depende muito do código que você vai escrever. O artigo fica só como curiosidade.
O que ressaltei no final. Não tem otimização que vença um algoritmo mal implementado.
E também há uma consideração a fazer. O java, no geral, em se tratando de códigos “ótimos”, ainda apresenta performance ligeiramente inferior ao C++. Entretanto, a diferença tem caído e acho que hoje não é mais um problema. Tanto, que eu não apostaria nesse fator como um diferencial do C em relação ao Java.
O segundo ponto a ressaltar é que códigos ótimos são difíceis de se conseguir. E em C++ um código assim é ainda mais complicado do que em Java. Essa constatação reforça a importância de uma API com código otimizado, como a imensa API do Java. Quanto mais fácil for ter acesso a código bom e pronto, melhor.
maquina virtual machine :?:
MVJ :?:
desenpenho :?:
[quote=marcushlm]maquina virtual machine :?:
MVJ :?:
desenpenho :?:[/quote]
Não gosto de comentar esse tipo de coisa, mas dessa vez foi feio.
Caro gollun, primeiro é “máquina virtual java” ou “java virtual machine” o que geraria a sigla JVM (em inglês).
Agora quanto ao erro de português… desculpe, mas sem comentários…