Rails 一个让 JSON 产生加快的 patch

lulalala · 2013年09月24日 · 最后由 lulalala 回复于 2013年09月25日 · 3343 次阅读

嗨各位,https://github.com/GoodLife/rails-patch-json-encode 是一个 Rails 的 monkey patch gem,能让 json 产生速度加快。

能加速的理由主要是两点。首先 Rails 虽然号称有使用 multi_json,理论上能套用 oj gem 加快 json 速度,可是其实 Rails 只有解析 json 时才会用到 multi_json,生成时是不会用到的。再来,Rails 因为某些原因(详见 readme)把生成的呼叫定死在 ActionSupport 的版本上,这是一个纯 Ruby 的实作,所以就是会慢。

本 gem 就是把产生 json 的呼叫绑订到 multi_json 上,所以产生 json 就能靠那些 c library 完成。我搭配 oj 实际测试,小 json 档案的产生时间减少 25%,而像是 readme 中的大 json 范例更能减少 90% 的时间。

不过因为还不能确认是不是有后遗症,所以想来这里问问看大家有没有什么非 production 的 project 能够拿来测试一下这个 gem。谢谢啰~

生成复杂 json 用 rabl 嘛

@kevinzhow 也是啦可是简单的 AR array 就不太想用这些。

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