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