嗨各位,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。谢谢啰~