gpt4 book ai didi

ruby-on-rails - 十分之一的偏音突然变慢(随机)

转载 作者:行者123 更新时间:2023-12-04 06:00:10 25 4
gpt4 key购买 nike

当我查看我的日志文件时,我得到以下几行:

...
Rendered partials/_something.html.erb (11.8ms)
Rendered partials/_something.html.erb (123.8ms)
Rendered partials/_something.html.erb (8.2ms)
Rendered partials/_something.html.erb (7.3ms)
Rendered partials/_something.html.erb (7.1ms)
Rendered partials/_something.html.erb (8.5ms)
Rendered partials/_something.html.erb (7.2ms)
Rendered partials/_something.html.erb (7.1ms)
Rendered partials/_something.html.erb (7.4ms)
Rendered partials/_something.html.erb (7.9ms)
...

我通过以下方式包含它们

@collection.each do |something|
render :partial => 'partials/something', :locals => {:something => something}
end

我觉得很奇怪,在这种情况下,第二次渲染(同一部分)比任何其他渲染花费的时间都长得多。然而,当我重新加载页面时,其他一些渲染花费了更多的时间,而 @collection - 变量仍然处于相同的顺序。

我真的不知道如何分析这个。我的意思是,如果是相同的 something 导致响应缓慢,我就能解决这个问题。但它似乎只是一个随机的。这可能是内存泄漏吗?

我希望你知道答案 =)!

最佳答案

这可能是垃圾收集

如果您使用分析软件(如 NewRelic)和 Ruby 解释器(如 Ruby Enterprise Edition (REE)),您可以打开 GC 统计信息并确认这一点,并衡量 GC 运行的频率以及您在 GC 上花费的时间。

当您分配更多的对象/数据时,由于数据的大小或分配的数量,您最终会触发 GC。这看起来几乎是随机的,并且会注入(inject)您看到的延迟。

这显示为“损失的时间”,因为您是在 Ruby VM 中测量它,它在 GC 执行时暂停。因此,在应用程序代码库中没有事件的情况下,您会看到这样的随机峰值。

如果您对性能调优或 GC 行为感兴趣,可以从 REE 文档的 GC 部分开始:

http://www.rubyenterpriseedition.com/documentation.html#_garbage_collector_and_object_space

关于ruby-on-rails - 十分之一的偏音突然变慢(随机),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7321451/

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