【问题标题】:Any performance disadvantages of GC.disable?GC.disable 的任何性能劣势?
【发布时间】:2013-06-19 02:20:03
【问题描述】:

在任何情况下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 的情况下进行性能测试和内存分析,以便为您的决定奠定基础

标签: ruby optimization garbage-collection yarv


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多