Comparação entre Java e C++

Boa Noite galera,

Achei este artigo que fala sobre alguns benchmarkes entre C e Java, ví que já se foi o tempo em que o java poderia ser considerado lento em comparação ao C ++. Vocês tem mais artigos que tratem sobre o tema?
Segue abaixo link do Artigo em questão:
http://scribblethink.org/Computer/javaCbenchmark.html

Antes de tentar procurar mais artigos e responder sua dúvida, acho que é interessante você explicar qual o seu objetivo ao procurar esses artigos, se é por mera curiosidade ou se tem um motivo mais específico.

De qualquer forma, uma busca rápida por “java c++ benchmark” traz vários resultados. Você chegou a dar uma olhada neles? Por exemplo: https://fiehnlab.ucdavis.edu/staff/kind/collector/benchmark/java-benchmark .

Abraço.

Então eu estou começando uma aplicação FIX Protocol, Iniciei ela em Java, me fizeram ir para C++, então vi que a que comecei em Java estava mais rápida. Por se tratar de uma aplicação que usará estatística, rede neurais artificias e o protocolo Fix, queria algum estudo recente que mostrasse as diferenças, este que postei é de 2016, e o java agora já esta na sua décima terceira versão, preciso saber saber se algo mudou até então.

Estes assuntos (FIX protocol, redes neurais) estão além do meu conhecimento atual, então não vou entrar neles. Imagino que alto desempenho é importantíssimo nesse projeto, então seguem algumas observações gerais:

Por que te fizeram ir para C++? Estou supondo que é uma demanda ou imposição do projeto, que você reluta em seguir porque a versão Java se mostrou com melhor desempenho, certo?

Não acho que você terá muita opção além de fazer você mesmo as comparações entre as implementações e chegar a alguma conclusão a respeito. E, se seu objetivo é convencer as pessoas do projeto que a melhor implementação seria a em Java, acho que é o melhor caminho. Melhor ainda se você puder discutir essas implementações, pois às vezes outras pessoas conhecem otimizações que podem ajudar nessas implementações.

Numa pesquisa rápida, vi que esse FIX Protocol é um domínio muito específico (trading), então, se já não está dando uma olhada nisso), pode ser que você tenha mais sucesso em fóruns do exterior. Inclusive, parece haver um fórum específico para ele ( https://forum.fixtrading.org/ ). Pode também dar uma olhada no StackOverFlow.

Sobre a questão do desempenho em si, obviamente houveram melhorias nesse meio tempo, mas não acho que tenham sido enormes no caso do Java. No caso de C++, você ainda tem que considerar que também existem diferentes versões (C++11, C++17), diferentes compiladores (gcc, clang, ms visual C++) e inúmeras otimizações que podem ser habilitadas ou desabilitadas conforme a necessidade. Ou seja, testar é provavelmente sua melhor opção.

Abraço.

Tudo tem a ver com as otimizacoes.
JVM esta bem otimizada em muitas coisas.
Algoritimos tambem contam.
JVM Hotspot esta mais rapida que a JVM OpenJ9 da IBM embora essa usa menos memoria, alias, bem menos.

Mas falando entre Java e C++, tem coisas que sim o Java ta’ ate’ mais rapido.

E tambem tem uma equipe do Java bastante euforica que pretendem lancar a JVM hoje em C++ toda em Java, dizem que ficara’ ainda mais rapida porque sera’ estatica, hoje e’ dinamica e fica o tempo todo chamando rotinas em C++, ponteiros e chamadas tem seu custo interno.

O Java 9 ou superior e’ ainda mais rapido por ser modular e usar OpenJDK Graal (ainda opcional) dispensando o trabalhoso JIT para a memoria/cpu e tambem recentemente tem a proposta do Inline (um verdadeiro foguete).

Tenho projeto aqui em Java que no mesmo similar em C++, nao deixa nada a desejar, alias, ta’ melhor pela seguranca, portabilidade e manutencao.

Da uma olhada nas coisas da Nasa, os caras estao usando Java desktop para coisas ultra complexas.