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

Программы на C++. Форум разработчиков
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

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