Ява обгоняет С
Причем ряд операций, например, вызов методаэто скорее всего делается агрессивный inline-инг, но так можно и C++-компилятор заставить делать.
зы
в случае java-ы, преимущество только в том, что это уже можно делать потом, что дает:
1. код при распространении не разбухает.
2. проще манипулировать настройками под конкретную машину
- Использование -O2 дает далеко не оптимальный код. Подбирая конкретные значения флагов для каждого теста, можно значительно улучшить результат. В то же время, использования JIT позволяет проводить оптимизацию для каждого теста индивидуально.
- Программы, на C++ и Java, которые использовались для тестирования, не эквивалентны.
- Ну и вообще:
Автор: Кейт Ли, 18.06.2004
Тесты синтетические, древние, местами действительно неэквивалентны. На этом форуме уже было =)
Впрочем, в 2004 году надо было показать, что элементарные вещи в джаве после введения JIT больше не тупят из-за ее "интерпретируемости" - с чем статья вполне справляется.
Только остается еще незатронутый слой проблем, связанных с ГЦ, из-за которых, джаву, в общем-то сейчас и "ругают".
(Bigger is better)
WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH
переносимость между платформами или сложность разработки не является критически важнойКрыс, будь няшко, не пости толстое трололо.
Ява — не перносима, это маркетинговое враньё. На практике же у тебя любое приложение будет упираться в особенности архитектуры.
А вот на С++ можно писать кроссплатформенно, и тогда всё везде работает.
Одним из главных недостатков языка Javagarbage collector.
Отсюда не какие-то проблемы с перемножением матриц, а НЕПРЕДСКАЗУЕМОСТЬ поведения прог.
sun jvm написана на C++, значит оно везде работает?
но кололись плакали и отвечали
не пости толстое трололо
Ява — не перносима
на С++ можно писать кроссплатформенно
Полная предсказуемость поведения возможна только в однопоточных приложениях. Ты ограничиваешься такими?
sun jvm написана на C++, значит оно везде работает?sun jvm написан непереносимо. И не работает, например, на армах
Полная предсказуемость поведения возможна только в однопоточных приложениях.Заведомо некорректное утверждение.
Слушайте, я вот давно раздел читаю — все хотел спросить hash - это ведь гаш?
sun jvm написан непереносимо. И не работает, например, на армахДа кому они нахер впились?
---
Posted from Asus EEE Pad
Оставить комментарий
stm6692945
http://www.codenet.ru/webmast/java/javavscpp.phpОдним из главных недостатков языка Java традиционно считается невысокая скорость работы программ по сравнению с приложениями на языке С++. И для приложений, где переносимость между платформами или сложность разработки не является критически важной, именно скорость часто была причиной, по которой разработчики делали выбор в пользу С++.
Однако опубликованные программистом Кейтом Ли результаты новых тестов показывают, что бытующее мнение о медленной работе 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.