bjam高速化 その6

Hamigaki.Bjamでは組み込みルールを自分で追加できるので、これを使ってjamファイルの計測をしてみました。

namespace bjam = hamigaki::bjam2;

bjam::string_list tick(bjam::context& ctx)
{
    std::cout << ::GetTickCount() << std::endl;
    return bjam::string_list();
}

int main()
{
    // ...

    bjam::context ctx;
    bjam::list_of_list params;
    ctx.set_builtin_rule("TICK", params, &tick);

    // ...
}

として、jamファイルの各所に「TICK ;」を仕込めば所要時間を調べられます。


これで調べると、user-config.jamに書いた

using msvc : 7.1 ;

の処理に極端に時間がかかっていました。
コードを追ってみると、重い処理を多数繰り返しているだけのように見えます。
う〜ん、単純に遅いだけ?