gpt4 book ai didi

ruby - 如何分析 Ruby 中的垃圾回收

转载 作者:数据小太阳 更新时间:2023-10-29 07:19:26 26 4
gpt4 key购买 nike

我正在尝试在非 Rails 应用程序中分析 GC,最好使用 YARV Ruby。

perftools.rb 告诉我我的大部分 CPU 时间花在了 garbage_collector (6061 (61.4%))。

我还可以使用 perftools.rb 获取通过哪些方法创建了多少个对象。有些方法创建的对象比其他方法多,但并没有严重偏差。

我从这里去哪里?是否有可能获得更详细的信息,说明为什么要花这么多时间做 GC?是否可以查看时间是花在清除对象上,还是花在检查对象是否应该进行垃圾回收上?

我可以访问 OS X Lion、Windows 7 和 Ubuntu 12.04。

最佳答案

在 osx 上你有 dtrace。 YARV ruby​​ 中有 dtrace 提供程序。

您可以使用一些与 GC 相关的探测器:

gc-开始 垃圾回收结束 gc-标记-开始 gc-标记结束 gc-sweep-开始 gc-sweep-结束

我认为它们可以帮助找到您程序中的 GC 在做什么。查看此文件以了解如何使用它们:https://github.com/tenderlove/ruby/blob/probes/test/dtrace/test_gc.rb .

此帖有更多解释:http://tenderlovemaking.com/2011/06/29/i-want-dtrace-probes-in-ruby.html

在 ruby​​ 中发现了一个错误 http://bugs.ruby-lang.org/issues/2565您可以在其中找到适用于 ruby​​ 的补丁以获取这些探针,或者您可以使用 https://github.com/tenderlove/ruby/tree/probes已经应用补丁的地方。

希望对你有帮助

关于ruby - 如何分析 Ruby 中的垃圾回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11463277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com