GC.disable的任何性能缺点?

时间:2013-06-19 02:20:03

标签: ruby optimization garbage-collection yarv

是否有GC.disable会降低性能的情况?只要我使用真正的RAM而不是交换内存,它可以吗?

我正在使用MRI Ruby 2.0,据我所知,它是64位,使用64位Ubuntu:

ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

Linux [redacted] 3.2.0-43-generic #68-Ubuntu SMP Wed May 15 03:33:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

1 个答案:

答案 0 :(得分:1)

GC.disable将禁用垃圾回收。像ruby这样的语言无法在没有垃圾回收的情况下释放内存,因为与C不同,你不会手动调用内存释放器。

所以是的,会有性能受到打击。最终你将耗尽内存,因为像字符串这样的对象会不断创建并且永远不会被清除。您可能甚至不负责,因为您使用的API的内部机制可能会生成对象。

如果不能更好地理解这个问题,不幸的是我能提供的最好的。