2010-01-27 31 views
6

我正在使用Eclipse作爲IDE和基於Makefile的構建系統(使用自定義工具來生成Makefiles)在Windows XP上開發C++應用程序。另外,我使用LZZ,它允許我編寫單個文件,然後將其分割爲頭文件和實現文件。我使用GCC 4的TDM的港口如何分析完整的C++構建?

我可以使用哪些工具或技術來確定構建過程的每個部分究竟需要多少時間,以及它爲什麼慢?

特別令人感興趣的是:

  • 多少時間使需要弄清楚解析Makefile文件,找出依存關係,檢查時間戳等?
  • 構建之前和之後Eclipse需要多少時間?
  • GCC花費在解析系統和提升頁眉上多少時間?

P.S:這是我家的項目,所以昂貴的工具是遙不可及給我的,但也可以,如果他們是特別重要反正這裏記錄。

回答

6

由於Make和GCC對他們所做的事情非常詳細,所以花時間對其進行高級概述的一種非常粗略的方法是通過腳本對每行的時間戳進行管道輸出:

make | perl -MTime::HiRes -pe "printf '%.5f ', Time::HiRes::time()" 

(我使用​​要做到這一點,但是從我推測,Strawberry Perl現在可能是推薦的Perl版本的Windows。)

格式化或處理時間戳根據自己的喜好。

如需更多信息有關GCC特別,使用--time-report選項。

要了解Eclipse添加了多少開銷,請使用秒錶從Eclipse和命令行構建時間表。

1

如果您使用boost,最有可能大部分時間都花在模板實例化和後續優化上。你可以告訴GCC報告所花費的時間,-time-report(UNIX選項,可能會在Windows GCC別的東西)

,如果你想加快你的編譯時間,禁用優化,-O0(最後一個字母是數字零,第一字母是大寫字母o)

1

嘗試SparkBuild,免費使用gmake/NMAKE替代品,可以生成一個註釋生成日誌與在構建每一個工作精確的時間信息。您可以將該文件加載到SparkBuild Insight中,以獲取時間到達的圖形概覽。

有關如何使用它的示例,請參閱this blog

0

GNU make的一個版本名爲remake,它提供了分析信息。

相關問題