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