4月18日から20日に開催されたRubyKaigi 2019。最終日,
今回,
Sequel,Rodaとは何か? Active Record,Sinatraとの比較
ここで,
オープンソースで3,000人以上のcontributorがいるRailsに対して,
パフォーマンス向上の原則
インスタンス変数をnilやfalseで初期化しない
まず,call
メソッドとActive Recordのinit_ruby -w
で初期化されていないインスタンス変数が警告されないようにするパッチを送ったがrejectされたとのことです
実行を本当に必要なときまで遅らせる / すべてを遅延させるのではなく,かならず必要になる処理であれば初期化に行い,実行時には行わない
Active Recordの最初のインスタンスはそのモデルに対して,
オブジェクトの生成を減らす
文字列の生成を減らす
Sequelでは,frozen-string-literal: true
の導入で性能向上につながりませんでした。これは以前からfreezeした文字列を定数に代入しており,frozen-string-literal: true
の導入によって,
ハッシュの生成を減らす
Sequelでは,
キーワード引数ではsplatをさける
RodaもSequelもオプションとしてHashを利用しており,