2020/03/31のメモ
Accurate Performance Measurement in Rails with a "Performance Environment"
- パフォーマンスのボトルネックを調べるには、ローカルに本番相当の環境を作らないとだめだよね、という話
- データを本番相当の量にする
- 本番相当の設定にする
- development.rb
- gem
- 実際のところはデータを用意するのが大変なんだよなー
Rescued Exceptions: A Silent Performance Drag in Ruby
- 例外のハンドリングは遅いので、想定しているケースでの例外はやめようという話
- 例外よりはthrow catchのほうがstacktrace情報持ってないので速い
- rack-mini-profilerで例外をハンドリングしているかどうかがわかるらしい
Can I Switch To Puma? Thread-Safety, Rack, Constants and More
- unicornからpumaに変えるとスレッドセーフでないアプリケーションのときに死ぬので変えづらい、という人向けの話
- pumaを1スレッド運用にすれば安心
- しかし1スレッド時のpumaとunicornってどっちがいいのだろ
- 2スレッド以上にするときはグローバルな変数に気をつける、というのは定番だけど、rack middlewareにも気をつけろというのはなるほど感あった
- rackアプリをあらかじめfreezeすることで破壊的な変更を検知することができる
- ioquatix/rack-freeze: A policy framework for implementing thread-safe rack middleware.
config.action_view.raise_on_missing_translations
- config.i18nになくてあれれ?と思っていたらaction_viewの下にあった
- Configuring Rails Applications — Ruby on Rails Guides