Masahiro Okubo

yajl-rubyを使ってみた

yajl-rubyを使ってみた

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を使ったりして少しずつ改善していきたいですね!


関連記事

copyright© 2016-2021 Masahiro Okubo