Rails jbuilder 使用多层 partial! 需谨慎,渲染有可能很慢

Insub · 2020年06月08日 · 最后由 Insub 回复于 2020年06月08日 · 2853 次阅读

今天测了一下,jbuilder 大约每一处 partial! 的渲染需要 100 ms 左右
例如:1 个 Plan 下面有 10 个 Days,每个 Days 下面又有 10 个 Events
渲染这个 Plan 花去了 20000 ms(20 秒)

这个是正常的吗?我现在不太敢使用 partial! 了,感觉每循环一次 partial! 就会耗损 100 ms,心疼

之前在生产环境一个小 partial 用时是 0.1 ms,但是因为要调用 1000 次,算下里也要用 100ms,果断去掉了。楼主的 100 ms 是本地开发环境还是生产环境的数据? 如果是本地的,建议测一下 production 的情况。如果是 production 的,那多半不是 partial 的锅。

@cxh116 不是,就是 views,能清楚看到
Rendered api/v1/users/_user.json.jbuilder (0.3ms)
Rendered api/v1/plans/index.json.jbuilder (1161.8ms)
Completed 200 OK in 1688ms (Views: 1509.1ms | ActiveRecord: 6.0ms)

@coderliu 是本地的,单个小 partial 我这用时是 0.2 ~0.3 ms,我看 github 上有人提到是开发环境下的问题,但是在开发环境感觉也难受啊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号