Rails 4.2 中的 oj gem 慢 to_json

Slow to_json with oj gem in Rails 4.2

我将 Rails 应用程序从 Rails 3.2 升级到 Rails 4.2。在我看来 to_json 的表现很糟糕。在我的 Rails 3.2 应用程序中,我使用 multi_json 和 Oj gem 来获得出色的性能。对于 Rails 4.2,我这样设置 oj gem:

gem 'oj', '~> 2.14', '>= 2.14.2'
gem 'oj_mimic_json', '~> 1.0', '>= 1.0.1'

但是,to_json 性能似乎不如 Rails 3.2 应用程序。一次 to_json 调用大约需要 CPU 时间的 50%。

Oj gem 文档提到添加:

serialize :metadata, Oj

使其与 ActiveRecord 一起工作。这条线应该放在我使用的模型中吗?

我找到了这里提到的答案: https://github.com/ohler55/oj/issues/199

添加两个 gem 后,还必须调用:

Oj.mimic_JSON()

为了.to_json使用Oj。