Софт и безопасность

Java обгоняет C++ по производительности

17 июня 2004 года, 20:11 | Текст: Иван Карташев

Одним из главных недостатков языка Java традиционно считается невысокая скорость работы программ по сравнению с приложениями на языке С++. И в случаях, когда переносимость между платформами или сложность разработки не являются критически важными, именно скорость часто является той самой причиной, по которой разработчики делают выбор в пользу С++.

Картинка к новости 'Java обгоняет по производительности C++'
Картинка к новости 'Java обгоняет по производительности C++'

Однако опубликованные программистом Кейтом Ли результаты новых тестов показывают, что бытующее мнение о медленной работе Java не вполне справедливо.

Сравнению подвергались программы на С++, скомпилированные при помощи G++ (GCC) 3.3.1, и программы на Java, скомпилированные при помощи Sun Java 1.4.2_01. Для выполнения Java-программ использовалась виртуальная машина Sun версии 1.4.2_01. Измерения проводили на ноутбуке с процессором Pentium 4 и 512 Мб памяти, который работает под управлением ОС Red Hat Linux 9/Fedora Test 1 с ядром версии 2.4.20-20.9.

В ходе тестирования выяснилось, что ключевым моментом, влияющим на производительность программ на Java, являются настройки виртуальной машины. Как видно из диаграммы, при использовании "клиентского" варианта настроек (он установлен по умолчанию) практически все операции программы на Java выполняют медленнее, чем программы на C++, хотя и не так уж намного, как можно было бы предположить. Зато при включении "серверных" настроек, в которых нет столь жестких ограничений по занимаемому объему памяти, преимущество в большинстве тестов оказалось на стороне Java. Причем ряд операций, например, вызов метода и хэширование, выполняются в программах на Java в несколько раз быстрее, чем в программах на C++. Впрочем, в основной массе тестов скорости Java и C++ оказались сопоставимы, что, конечно, тоже может служить аргументом против мнения о медленной работе Java.

Последние комментарии:

Оставить комментарий
Гость - 18.08.2006 12:47
Бу-га-га!! Соревнования тормозов :-))
Mr - 18.08.2006 11:30
А если для чистоты эксперимента и в с++ -ом компиляторе включить оптимизацию? И использовать более умные компиляторы? И переписать С++ -ый вариант по-умному? Я видел с какой скоростью поднимается Eclipse написанный на java. Печальное зрелище
Tuman - 17.08.2006 23:17
Смотреть и не верить одно, а скомпилировать и запустить - другое. Я проверил тест с числом Фибоначчи, немного модифицировав его. Явовский вариант быстрее, а с опцией -server быстрее почти в два раза.

Последние новости по теме:

Архив материалов
  «   Ноябрь 2008   »  
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930