比较ruby和python代码的性能

比较ruby和python代码的性能,python,ruby,performance,memory-management,Python,Ruby,Performance,Memory Management,我有一个内存和CPU密集型的问题需要解决,我需要在不同的平台上用ruby和python测试不同的解决方案 为了进行基准测试,我需要测量python和ruby中的对象(不是整个程序,而是选定的对象列表)所花费的时间和占用的内存 请推荐方法,并让我知道是否可以不使用操作系统指定工具(如任务管理器和ps)来完成。谢谢 Update:是的,我知道Python和露比都不太强,还有更好的选择,比如C、C++、java等。我实际上比较喜欢Python和Ruby的性能。请不要与名利作斗争。对于Python,我

我有一个内存和CPU密集型的问题需要解决,我需要在不同的平台上用ruby和python测试不同的解决方案

为了进行基准测试,我需要测量python和ruby中的对象(不是整个程序,而是选定的对象列表)所花费的时间和占用的内存

请推荐方法,并让我知道是否可以不使用操作系统指定工具(如任务管理器和ps)来完成。谢谢

Update:是的,我知道Python和露比都不太强,还有更好的选择,比如C、C++、java等。我实际上比较喜欢Python和Ruby的性能。请不要与名利作斗争。

对于Python,我推荐

对于Ruby,您可以使用或只是阅读关于内存泄漏调试(Ruby)的答案。

对于Python,我建议您使用


对于Ruby,您可以使用或直接阅读关于内存泄漏调试(Ruby)的答案。

如果您使用Python执行CPU密集型算法任务,我建议使用Numpy/Scipy来加速数值计算,并使用Psyco JIT编译器完成其他所有任务。如果您使用优化的组件,您的速度可以接近低级别语言的速度。

如果您使用Python执行CPU密集型算法任务,我建议您使用Numpy/Scipy来加速数值计算,并使用Psyco JIT编译器完成所有其他任务。如果您使用优化的组件,您的速度可以接近低级别语言的速度。

如果您真的需要用这样的语言编写快速代码(而不是一种更适合CPU密集型操作和对内存使用(如C++)的近距离控制的语言),那么我建议将大部分工作推到

Cython是一种使人 为Python编写C扩展 语言和Python本身一样简单。 Cython是基于著名的 Pyrex,但支持更先进的 功能和优化

Cython语言与英语非常接近 Python语言,但Cython 另外还支持调用C 函数和在上声明C类型 变量和类属性。这 允许编译器生成非常有用的代码 高效的C代码来自Cython代码


通过这种方式,您可以利用Python的易用性获得C语言的大部分效率。

如果您真的需要用这样一种语言编写快速代码(而不是一种更适合CPU密集型操作和密切控制内存使用的语言,如C++),那么我建议将大部分工作推到

Cython是一种使人 为Python编写C扩展 语言和Python本身一样简单。 Cython是基于著名的 Pyrex,但支持更先进的 功能和优化

Cython语言与英语非常接近 Python语言,但Cython 另外还支持调用C 函数和在上声明C类型 变量和类属性。这 允许编译器生成非常有用的代码 高效的C代码来自Cython代码


通过这种方式,您可以充分利用C语言的效率和Python的易用性。

在应用程序的生命周期中,我不想仅仅衡量对象图的内存消耗。毕竟,最终你真的不在乎。您希望您的应用程序整体上具有足够低的占用空间

如果您选择限制对内存消耗的观察,请在考虑事项列表中包括垃圾收集器计时,然后查看ruby prof:

再见,

Sheldon.

在应用程序的生命周期中,我不想仅仅测量对象图的内存消耗。毕竟,最终你真的不在乎。您希望您的应用程序整体上具有足够低的占用空间

如果您选择限制对内存消耗的观察,请在考虑事项列表中包括垃圾收集器计时,然后查看ruby prof:

再见,
Sheldon.

(您没有指定py 2.5、2.6或3;或者ruby 1.8或1.9、jruby、MRI;JVM有大量的工具来解决内存问题;通常,通过发布复制问题的程序的精简版本来减少内存消耗是有帮助的

Heapy、ruby教授、bleak house都是很好的工具,以下是其他工具:

红宝石

自己看一下ObjectSpace

(ruby和python)

(您没有指定py 2.5、2.6或3;或者ruby 1.8或1.9、jruby、MRI;JVM有大量的工具来解决内存问题;通常,通过发布复制问题的程序的精简版本来减少内存消耗是有帮助的

Heapy、ruby教授、bleak house都是很好的工具,以下是其他工具:

红宝石

自己看一下ObjectSpace

(ruby和python)
如果这是一个重要的选择,那么哪种语言是正确的选择。对于CPU的强烈问题,我推荐一种编译语言,它生成字节码或MasChin代码作为C、C++、C、java等。Popython确实生成字节码,BTW.YEA,OK。Python创建了一个附加字节码。T在内存处理方面更出色?如果这是一个正确的选择,那么哪种语言是正确的选择。对于CPU的强烈问题,我推荐一种编译语言,它生成字节码或MasChin代码作为C、C++、C、java等。Popython确实生成字节码,BTW.YEA,OK。Python创建了附加字节码。假设使用类型强制的语言通常在内存处理方面更好?对于这个问题,我没有使用太多的算法任务,但无论如何,感谢您的建议。对于这个问题,我没有使用太多的算法任务,但无论如何,感谢您的建议
from guppy import hpy
h = hpy()
print h.heap()