比较Ruby和Python代码的性能
我有一个需要大量内存和CPU的难题需要解决,我想在不同的平台上对Ruby和Python的不同解决方案进行性能测试。
为了进行这个测试,我需要测量在Python和Ruby中,特定对象所占用的时间和内存(不是整个程序,而是选定的一些对象)。
请推荐一些方法来实现这个目标,并告诉我是否可以在不使用操作系统特定工具(比如任务管理器和ps命令)的情况下完成。谢谢!
更新:是的,我知道Python和Ruby在性能上不算强,还有更好的选择,比如C、C++、Java等。我其实更想比较Python和Ruby的性能。请不要引发争论。
5 个回答
2
如果你在用Python做一些需要大量计算的算法任务,我建议你使用Numpy和Scipy来加快你的数字计算速度。除此之外,可以使用Psyco这个即时编译器来提升其他部分的速度。如果你使用了优化过的组件,你的运行速度可以接近一些更底层的编程语言。
3
如果你真的需要在像这样的语言中写出快速的代码(而不是在像C++这样更适合进行大量计算和内存控制的语言中),我建议你把大部分工作交给 Cython 来处理。
Cython是一种语言,它让为Python编写C扩展变得和写Python一样简单。Cython是基于一个叫Pyrex的语言,但它支持更多先进的功能和优化。
Cython语言和Python语言非常相似,但Cython还支持调用C语言的函数,并且可以在变量和类属性上声明C语言的数据类型。这使得编译器能够从Cython代码生成非常高效的C代码。
这样,你就可以在享受Python使用简单的同时,获得C语言的高效性能。
3
对于Python,我推荐使用heapy
from guppy import hpy
h = hpy()
print h.heap()
如果你用的是Ruby,可以使用BleakHouse插件,或者看看这个关于内存泄漏调试的回答(Ruby)。