我正在优化Rails应用程序中的一些慢事务,我发现在呈现JSON视图方面花费了大量时间:
呈现欢迎/index.json.rabl(490.5ms)
1174ms内完成200 OK(视图:479.6ms |活动记录:27.8ms)
假设API调用正返回它需要返回的数据,在rails中呈现JSON的最快方法是什么?
我们之所以使用Rabl,是因为它能够轻松地共享代码,但我们并不依赖于它
目前,oj似乎是速度最快的渲染器,击败了yajl(根据oj作者的比较)
最新的multi_json默认使用Oj(rails默认使用mutli_json),因此切换到Oj应该非常简单,只需将以下内容添加到您的文件中即可:
\Gemfile
宝石“oj”
然后每次调用render时,它现在都将使用oj
呈现:json=>;{…}#使用使用oj的multi_json
如果您想要更高的性能,Oj还提供了额外的特定接口,但坚持使用multi_json会使将来更容易交换gems
请注意,如果您有任何{…}.to_json调用-除非您在初始值设定项中调用oj.mimic_json,否则这些调用不会升级为使用oj