The second edition of the Programming Language Benchmark (PLB) project has been published. This project aims to test standard tasks in various programming languages. Unlike the first edition, which was published in 2011, the new version evaluates the performance of code for multiplying matrices, solving the problem of arranging 15 frames, searching for solutions in the game Sudoku, and determining the intersections of two arrays. Test code was written in 20 programming languages.
After conducting the tests, it was found that the implementation of test applications in the ZIG language showed the highest performance. Mojo came in second place, followed by nim in third place. The fourth place was shared by the SI language (when compiling in Clang) and V language. The Crystal language secured the fifth spot, while D ranked sixth. Rust, GO, and Java followed in the seventh, eighth, and ninth places respectively, with Java just slightly behind GO in terms of performance.
Additionally, Dart and C# showcased relatively good results. These results can be attributed to the use of a separate stage of JIT-compilation in Java and C#, while in DART, BUN, Node.JS, Julia, Luajit, PHP, Pypy, and Ruby3 (YJIT), JIT-compilation is performed only during summer and affects only frequently executed code. Notably, the Bun JavaScript platform outperformed Node.js. On the other hand, Lua, Julia, and Swift demonstrated relatively slow performance. The worst performance indicators were observed in PHP, Ruby, Perl, and Cpython.