ruby - GC.disable 的任何性能缺点?

标签 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

最佳答案

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

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

不幸的是,在没有更好地理解问题的情况下,这是我能提供的最好的。

关于ruby - GC.disable 的任何性能缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17181919/

相关文章:

swift - 是否可以使用动态属性来保存跨兄弟类的重复排序代码?

javascript - 本地未附加的 DOM 元素何时会被垃圾收集?

ruby-on-rails - Ruby on Rails : looping through records, 但不显示当前 ID 的记录

ruby-on-rails - 在 Rails 中使用 Sunspot 和 Solr 连接被拒绝

ruby-on-rails - 管道 Assets 预编译禁用似乎不起作用

ruby - ruby 错误消息中的反引号和单引号

android - 在 Android 中绘制(过滤)100k+ 点到 MapView

PHP || and && 逻辑优化

javascript - JS : Profile What Objects Constructors are Garbage Collected

c# - 事件处理程序会阻止垃圾收集的发生吗?