Upgrade to Pro — share decks privately, control downloads, hide ads and more …

運用に困っていた重いバッチを高速化したらそもそもの運用が変わった話

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 運用に困っていた重いバッチを高速化したらそもそもの運用が変わった話

Avatar for SHIFT EVOLVE

SHIFT EVOLVE PRO

June 27, 2021
Tweet

More Decks by SHIFT EVOLVE

Other Decks in Business

Transcript

  1. C++の底力を絞り出す! unordered_mapの変わりにmartinus/robin-hood-hashingを使う 17秒 → 15秒 fmtlib/fmtの引数をFMT_COMPILEに変更する 15秒 → 13秒 doubleの文字列化処理を整数に変換してから実施

    13秒 → 11秒 dbubleの文字列化処理をキャッシュして保持 11秒 → 10秒 martinus/robin-hood-hashingの一部をTessil/robin-mapに変更 10秒 → 9秒 CSV parserの利用をやめて最適化したロジックへ 9秒 → 8秒 標準allocatorの代わりにmicrosoft/mimallocを使う 8秒 → 7秒 条件分岐をループの外に移動 7秒 → 6秒 さらに3倍弱の高速化! DevOps & QAエンジニアLT大会 Vol.1 12 / 19
  2. そして、ふと気がつく これだけ速くでいるならば、処理方式を変更できるのでは? 契約先が ファイルを 配置 オリジナル データを 保存 ⽣データから 必要な部分だけ抽出

    業務に応じて⾮定期で 最新状態を閲覧 お客様に提案したところ、プロトタイピングすることに! DevOps & QAエンジニアLT大会 Vol.1 15 / 19