パフォーマンスチューニング紆余曲折

この数ヶ月の動き。

  1. 多くの C++ 関数を計測せずに Inline 化。
  2. 速度に効果がないばかりか build dependency が増加しビルド時間に致命的なダメージ。開発効率が下がる。
  3. build dependency を改善するため、むやみな Inline 化を解消し、本当に必要なところだけ Inline 化。
  4. 計測とグラフを心がける。設計をこわすむやみな最適化は悪だと気付く。
  5. Scheme 側のアルゴリズムや、命令の粒度を変更、速度が上がる。
  6. Scheme 側のプロファイラを駆使して遅いところを特定。改善。
  7. 特定コードをGauche などと命令列レベルで比較。なぜ遅いかを分析する領域に突入。
  8. ほとんどの場合特定 C++ 関数が Inline 化されているか?に起因している。
  9. 再び Inline 化ブーム。←いまここ