Lua、Luajit、Python、Node.js和Java效能測試對比

banq發表於2016-06-22
這個Github專案提供了Lua、Luajit、Python、Node.js和Java等動態語言的效能測試,具體語言版本包括:
Lua 5.3.3
Luajit 2.0.4
Python 3.5.1
Pypy 2.4.0
HipHop VM 3.13.2
NodeJS v6.2.1
OpenJDK 1.8.0_92 (reference)

主要測試下面演算法的效能:
二叉樹
fannkuchredux
fasta
nbody
spectralnorm

測試結論如下:
1. Lua是非常快的解釋語言,甚至快於一些JIT,它最大的缺點是當出現大量的(re)alocating(分配或再分配)時會出現效能下降,可見其二叉樹演算法測試。

2.Luajit非常瘋狂的動態jit,非常閃耀的快速語言,但是當執行更長時間以後,它會被Java超越,也就是說,當分配了很多空間情況下,它的效能才非常好。

3.Python是最慢的解釋語言,最壞情況是進行Fibonacci 程式執行時(Python不能做CPU密集型的任務)

4.Pypy是處於HHVM, Lua和 Python以及Node,Luajit,Java之間的語言,當需要許多分配時它會有很多問題。

5.HHVM有時確實超過Pypy-s效能,但是不總是,如同原生Python實現,它在遞迴計算會有嚴重問題。

6.Node.js是非常快的JIT,只會被LuaJit和Java打敗,快於Pypy好幾倍,當實現氣泡排序時特別優秀。

7.Java:當執行很短程式時會輸給Luajit,但是執行超過幾秒的較長程式時,會超過Luajit,變成最快的。

gareins/dynamic_benchmarks: Collection of benchmar

相關文章