複製鏈接
請複製以下鏈接發送給好友

編譯時間

鎖定
用户使用編譯程序對其個人編制的源程序進行編譯的過程稱為程序編譯。編譯時間(compiling time) 指編譯程序將源程序編譯成目標程序所佔用的時間。
中文名
編譯時間
外文名
compiling time
對    象
源程序
應用領域
互聯網
應用學科
計算機科學與技術
顯    示
__DATE__和__TIME__

編譯時間定義

用户使用編譯程序對其個人編制的源程序進行編譯的過程稱為程序編譯。編譯時間(compiling time) 指編譯程序將源程序編譯成目標程序所佔用的時間。 [1] 

編譯時間減少時間

一是執行每日自動構建。每日自動構建的原理很簡單:安裝每日構建工具CCNET(不熟悉該工具的同學可以去搜索下)。然後在源碼服務器上安裝編譯環境。源碼服務器每天獲取最新代碼,每天下班後開始編譯最新代碼,經過一個晚上基本上就能把庫和應用程序都編好,到了第二天開發人員只需下載最新的庫文件和代碼文件而不須自己重新編譯。這樣就能大大節省時間了。
二是使用聯合編譯器Incredibuild。這個工具估計大家都不陌生。最近試驗了一個新想法,寫一個批處理文件,將SVN和IncrediBuild綁在一起,實現了從源碼更新到工程編譯。
c++環境中:
1. 刪除不必要的#include,替代辦法 使用前向聲明 (forward declared )
2. 刪除不必要的一大堆私有成員變量,轉而使用 “impl” 方法
3. 刪除不必要的類之間的繼承

編譯時間命令語法

svnupinclude//更新服務器的include文件夾到本地
BuildConsoleD:\Code\MySolution.sln/prj="MyApp"/build/OpenMonitor/cfg="Debug|Win32"
BuildConsole是IncrediBuild的命令行工具
D:\Code\MySolution.sln是你的解決方案文件絕對路徑
/prj參數設置你要編譯的工程,如果你要編譯多個工程,可以這樣設置,/prj="prj1,prj2,prj3"
/prj參數也支持通配符,/prj="*"即為編譯MySolution.sln下的所有工程
/build為編譯工程,若改為/rebuild即是清理重編工程
/OpenMonitor為打開Incredibuild的圖形化界面,去掉該參數則不出現圖形界面
/cfg為編譯設置選項,如要編release版本,可以改為Release|Win32
把上面的代碼保存為BuildDebug.bat,把文件保存在D:\Code\路徑下(即源碼根目錄,下面有include、src和vs三個文件夾),然後運行這個批處理文件就相當於把從更新源碼到編譯源碼這一系列動作都執行了。 [2] 

編譯時間軟件顯示時間

__DATE__和__TIME__
例子:
char strASCIICompileProfile[128]={0};
sprintf(strASCIICompileTime, "\nCompile time: %s %s", __DATE__, __TIME__);
  可以做個菜單,顯示這個內容,或者按某一個連續數字串時,顯示它。
編譯命令裏,需要刪除這個文件的O文件,重新編譯,以保證顯示的是編譯時間。
+if exist ..\..\build\ms\SXNAAHZ\apptest.o del ..\..\build\ms\SXNAAHZ\apptest.o
參考資料
  • 1.    吳承勇. 指令級並行編譯的關鍵技術研究[D]. 中國科學院研究生院(計算技術研究所), 2000.
  • 2.    Brian Livingston, 趙錦. Windows95的批處理命令[J]. 電子與電腦, 1995(9):61-62.