gpt4 book ai didi

ruby - 导轨 4 : why is one way of rendering partials so much faster?

转载 作者:数据小太阳 更新时间:2023-10-29 06:53:46 24 4
gpt4 key购买 nike

我不确定这是否是 Rails 特有的问题,因此我也将其标记为 ruby

我正在通过部分呈现一组 event 记录。但是,我发现以不同方式渲染部分会导致性能差异显着。

两个版本使用完全相同的数据,唯一不同的是用于渲染局部的代码。

为什么一个版本总是比另一个版本快 4 倍?让我想知道我正在接受哪些其他性能影响......

慢速版本(总请求时间 950 毫秒):

<% events.each do |event| %>
<%= render partial: "events/event", locals: { event: event } %>
<% end %>

# Log output
Rendered events/_event.html.erb (1.1ms)
Rendered events/_event.html.erb (1.1ms)
...

更快的版本(总请求时间为 250 毫秒):

<%= render partial: "events/event", collection: events, as: :event %>

# Log output
Rendered events/_event.html.erb (58.7ms)

最佳答案

示例 1:您正在渲染部分 x 次(取决于事件)。这意味着您正在编译 html x 次(每次循环运行一次)。这是慢

示例 2:你正在渲染一个包含一系列事件的部分html 被编译一次(因为只有一个部分)。哪个快

关于ruby - 导轨 4 : why is one way of rendering partials so much faster?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44509928/

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