测试语言的效率是一个非常坑爹的话题,到底怎么测才叫标准?写个快排跑1000遍?还是渲染个3D模型?还是算个8皇后问题?
即使问题的定义没问题,咱就写N个语言下的快排,然后看1000遍谁更快,但是同一个语言的写法效率上有区别,效率高的写法可能不符合语言的style guide,正常项目下又是按照style guide来写的(我能想到的例子是python下用slice做快排,是比不上直接inplace排序的效率的。以及scala部分场景下用var代替val效率提升很大。),那评测的效率又有什么区别呢?还有Java和PyPy这些需要JIT加速的语言,跑100遍快排不如别人,跑1000000遍快排速度堪比C,这你用1000遍快排来测试找谁说理去?
Debian做了一个语言测试的页面,提供了相对丰富的测试语言、测试用例、测试平台等等,可以供你参考 http://benchmarksgame.alioth.debian.org/
请确保引用这个页面结论前明白这段文字的意思:
Measurement is highly specific -- the time taken for this benchmark task, by this toy program, with this programming language implementation, with these options, on this computer, with these workloads.