Производительность C++ и Java при повторяющихся вычисленияхJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Производительность C++ и Java при повторяющихся вычислениях

Сообщение Anonymous »

Возможно ли, что при повторяющихся вычислениях Java превосходит C++ по производительности на порядок? Мой проект с открытым исходным кодом является таким эталоном: https://github.com/Chengpu0707/VarianceArithmetic:
Изображение

На рисунке выше я сравнил время выполнения БПФ для входных данных размером $2^{order}$. Как и ожидалось, время выполнения увеличивается экспоненциально как $~2^{order}$.
Проект C++ компилируется с использованием -O3. Тем не менее, он на порядок медленнее, чем Java, когда порядок БПФ больше 10. Я полностью удивлен этим результатом.
Некоторые другие технические подробности о моем компьютере:
  • Версия Java: версия Java «1.8.0_441»
  • Версия gcc: gcc.exe (Rev3, построена MSYS2) проект) 13.2.0
  • ЦП: Intel(R) Core(TM) 12-го поколения i7-1255U (1,70 ГГц) 10-ядерный
  • ОЗУ: 16,0 ГБ (15,7 ГБ полезного)
  • На рисунке показаны средства 72 прогона в каждом заказе БПФ. Когда порядок БПФ больше 10, отклонение выполнения намного меньше соответствующего среднего значения выполнения.
  • Все коды являются однопоточными.
  • Код не предназначен для оптимизации под какой-либо язык программирования.
  • В моем ноутбуке нет графического процессора, и коды не компилируются для какого-либо процессора.
  • Информацию о запуске каждого из них см. в README.
Флаги C++ такие же, как в файле Task.json Vs Code:

Код: Выделить всё

            "args": [
"--std",
"c++23",
"-fdiagnostics-color=always",
"-g",
"-O3",
],
Показывает ли это, что оптимизация JIT-компилятора Java превосходит статическую оптимизацию C++ при повторяющихся вычислениях?

Подробнее здесь: https://stackoverflow.com/questions/798 ... omputation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»