railsで構築したAPIを少しでも早くできればと思い、yajl-rubyというgemを使ってみました
[toc]
yajl-rubyについて
yajl-rubyはjbuilderを高速化することができるgemです
JSONをjbuilderで出力しているのであれば、やってみる価値はあるかと思います
Faster JSON backends
Jbuilder uses MultiJson, which by default will use the JSON gem. That gem is currently tangled with ActiveSupport’s all-Ruby #to_json implementation, which is slow (fixed in Rails >= 4.1). For faster Jbuilder rendering, you can specify something like the Yajl JSON generator instead. You’ll need to include the yajl-ruby gem in your Gemfile and then set the following configuration for MultiJson:
導入方法
導入はとても簡単です
まずはGemfileに以下の行を追加して bundle install します
gem 'yajl-ruby', require: 'yajl'
次に config/initializers にmulti_json.rb 以下の内容で作成
require 'multi_json' MultiJson.use :yajl
最後に、ちゃんと反映されているか rails cinsole で確認してみましょう
$ rails console [1] pry(main)> MultiJson.engine => MultiJson::Adapters::Yajl
このように、MultiJson::Adapters::Yajl と返ってこれば反映されています
rails/jbuilder
brianmario/yajl-ruby
how to use jbuilder with yajl
効果
実際に導入してみての効果ですが、若干早くなりました
そもそもrailsは早く開発できることがメリットなので、劇的なスピードアップは難しいとは思いますが、
yajl-rubyなどのgemを使ったりして少しずつ改善していきたいですね!
コメントを残す