Сравнение эффективности 20 языков программирования

Опубликована вторая редакция проекта PLB (Programming Language Benchmark), нацеленного на тестирование производительности решения типовых задач на различных языках программирования. В отличие от первой редакции, опубликованной в 2011 году, новый вариант оценивает производительность кода для умножения матриц, решения задачи расстановки 15-ферзей, поиск решений в игре Судоку и определение пересечений двух массивов. Код для тестирования был написан на 20 языках программирования.

Наиболее высокую производительность показала реализация тестовых приложений на языке Zig. На втором месте оказался язык Mojo, а на третьем – Nim. Четвёртное место разделили языки Си (при компиляции в clang) и V. На пятом месте оказался язык Crystal, на шестом – D, на седьмом Rust, а на восьмом Go. Очень неплохой результат оказался у Java, который лишь немного отстал от Go.

Относительно хорошие результаты также показали языки Dart и C#. Хорошие результаты у Java и C# объясняются использование отдельной стадии JIT-компиляции, в то время как в Dart, Bun, Node.js, Julia, LuaJIT, PHP, PyPy и Ruby3 (YJIT) JIT-компиляция выполняется на лету и затрагивает только часто выполняемый код. JavaScript-платформа Bun заметно обогнала Node.js. Относительно медленными оказались результаты у Lua, Julia и Swift. Наихудшие показатели производительности продемнострировали PHP, Ruby, Perl и CPython.


Release. Ссылка here.