个人魔怔于程序的运行效率,在此方面耗费了大量时间。这里归总了笔者做过的若干个语言的实验,都以Fibonacci序列的迭代计算法为例。由于实验时间较早,忘记了当时的硬件情况,当前不能公平的继续加入其它语言作比较了。
先上实验结果:
七种实现方式本质为三类:Cython,C++,RCpp的C/Cpp类;Java、RJava的java类;动态解释型的R和python。
计算速度方面: Cython,C++,RCpp最快;Java、RJava其次;R和python最慢。
编码舒适度方面: R和python最轻松自在;Cython,C++,RCpp其次;Java、RJava个人偏讨厌;
R
只测了Fibonacci(40),花费就已经达到了542.04秒;
Fibonacci(50)直接没有测,恐怕够睡一觉了——不要小看只增加了10个数。
Java
Fibonacci(40)运行了1.39秒
Fibonacci(50)运行了163.843秒
RJava
Fibonacci(40)运行了1.438秒
Fibonacci(50)运行了176.640秒
Python
Fibonacci(40)运行了66秒
Cython
Fibonacci(40)仅需0.668秒
C++
Fibonacci(50)运行了73.08秒
RCpp
Fibonacci(50)运行了37.44秒
领取专属 10元无门槛券
私享最新 技术干货