R 和 Python,内存差异导致性能差异

数据挖掘 r Python 表现
2021-09-30 20:53:55

我认为有很多关于使用哪一个的帖子:R 或 Python。但是,我很好奇它们的架构差异如何产生速度性能差异,而不是使用哪一个。

这篇文在 R 和 python 之间进行了一个小测试,以表明(优化的)python 代码比 R 代码快 2 倍。*而且我在这篇文章中读到 R 倾向于将所有内容都放在内存中,这就是为什么计算大型数据集通常很慢。

但是,是什么让 python 的低级内存管理与 R 有如此大的不同,这有助于它产生这些基准呢?

*虽然在这个测试中 python 比 R 快 2 倍,但我并不是说 python 通常比 R 快 2 倍。

2个回答

这取决于各种包(Numpy/Scipy 等)的使用,这些包是用 C 语言编写的,而且速度非常快,也可以使用 JIT 编译 Python。这是 R 和 Python 之间的一个很好的比较:https ://learnanalyticshere.wordpress.com/2015/05/14/clash-of-the-titans-r-vs-python/

R 的性能取决于您如何编写它。例如,大多数情况下,您不应该在 R 中使用 for 循环——它们非常慢,因为它们在每次迭代时都会执行一个函数调用。(应该矢量化并使用 apply 系列函数。奇怪,我知道..)如果你想要快速的代码,矢量化在 R 中是王道。假设您将 R 和 Python 代码(以及其他因素)向量化,您可能应该在速度上获得相同数量级。对于大于内存的数据(您可以指定限制),R 开始成为一个糟糕的选择。我对python的内部了解不多,所以我不能谈论这个。