els*_*ooo 3 ruby-on-rails partials
当我查看我的日志文件时,我得到以下行:
...
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)
...
Run Code Online (Sandbox Code Playgroud)
我按照以下方式包括它们
@collection.each do |something|
render :partial => 'partials/something', :locals => {:something => something}
end
Run Code Online (Sandbox Code Playgroud)
我觉得很奇怪,在这种情况下,第二个渲染(相同的部分渲染)需要比任何其他渲染更长的时间.但是,当我重新加载页面时,其他一些渲染需要花费更多时间,而@collection-variable仍然处于相同的顺序.
我实际上并不知道如何描述这个.我的意思是,当它something导致缓慢的反应时,我能够弄明白.但它接缝只是一个随机的.这可能是一些内存泄漏吗?
我希望你知道答案=)!
这可能是垃圾收集.
如果您使用分析软件(如NewRelic的)和一个Ruby解释器,比如Ruby企业版(REE),你可以打开GC的统计和确认,并测量多久GC运行和多少的时间在GC花费.
在分配更多对象/数据时,由于数据大小或分配数量,最终会触发GC.这看起来几乎是随机的,会注入你看到的延迟.
这显示为"丢失时间",因为您在Ruby VM中对此进行了测量,这在GC执行时暂停.因此,在应用程序代码库中没有活动时,您会看到这样的随机峰值.
如果您对性能调优或GC行为感兴趣,那么一个好的起点是REE文档的GC部分:
http://www.rubyenterpriseedition.com/documentation.html#_garbage_collector_and_object_space
| 归档时间: |
|
| 查看次数: |
363 次 |
| 最近记录: |