FindFree 速くならないな - パフォーマンスチューニング
経緯
FindFreeが遅い。
canFrees の探索を hash_map, unordered_map などにしたが、そもそものデータのセットアップ(挿入)で 300-400 msec かかる。
以下のような簡単なコードと比較してもかかっている時間におかしな点はみられない。
for (int j = 0; j < 4000; j++) { __gnu_cxx::hash_map<int, int> test; for (int i = 0; i < 400; i++) { test[i] = j; } }
とりあえずの対応
線形探索に戻すのが良いと思われる。
やることは
- hash_map で動かした rev を記録 206
- 計測:924/925/922
- 線形探索の rev に戻す
- CompilerProcedure.cpp を rev204 に戻した
- 計測: 844/856
- unordered_map は有用なので残す rev 記録。
- rev 207