用 RAM Disk 提高編譯速度?

項目很大, 文件很多, 而且由於開始時編碼的一些不是很合適的設計, 規劃, 導致了現在每次編譯的時間很長. 我的機器配置 P4 D 2.8G/1G,  rebuild all 需要 12 分鐘. 當然, 我也不會沒事就 rebuild all. 可問題是. 頭文件被依賴的太多. 隨便改動一個頭文件. 幾乎所有的文件都在編譯.

在現階段我不能去改編碼的設計, 我能做的只能是想想辦法提高本機的編譯速度. 想到的就是 Ram Disk. 我不是有 1G 內存嘛. 平常使用也不超過 512M, 查看了一下編譯生成的臨時文件 400M 左右. 我可以創建一個 450M 的 Ram Disk. 似乎是個不錯的主意.

找 Ram Disk, 此前在論壇裏一直有人推薦 RamDiskNT 什麼的. 我記得也下載過. 但安裝/重啓很麻煩. 我覺得那個不是我想要的. 而且我覺得一個軟件的名稱加上個後綴 NT 啊, XP 啊, 第一感覺首先就打了一個折扣. 別人出來 NT, 你就加個 NT, 出來 XP, 你就加個 XP, 那現在你是不是再加上個 Vista? 你到底有沒有準譜啊? 感覺這樣的軟件公司不是做程序的, 是來做秀的.

上網搜索. 我找到了Gavotte Ram Disk, 雖然是一個程序員在微軟的驅動例子程序上修改的. 但別人評論很不錯. 穩定. 而且安裝/卸載/調整容量等操作都不用重啓系統. 很綠色啊.

安裝, 設置容量爲 450M, 設置完了之後, 從任務管理器上直接就看到內存佔有的變化, 到了 800M 了. 設置 vc6 的編譯路徑. rebuild all. 結果令人很失望. 編譯花了 10 分鐘. 速度提升很有限. 分析一下原因. 編譯的時候 CPU 一直佔用 50%. 因爲是超線程. 其實也就是隻用一個 CPU. 這個沒有辦法. vc6 太老了. 記得 vc2005 可以同時編譯兩個工程, 但也僅限於兩個工程. 而不是一個工程中的兩個文件. 另一個因素就是編譯的大部分時間還是花在編譯器的那些操作, 詞法/語法/語義分析, 優化等. 使用 Ram Disk 只是在最後寫 obj 文件的時候有用處. 而 OBJ 文件並不是那麼大, 也就 300M+, 所以效果不明顯了.

我不甘心. 因爲 vc 在編譯的時候需要在 %Temp% 目錄生成一些文件, 我又將臨時文件目錄設置到 Ram Disk, 再次測試, 幾乎沒有什麼提升. 還是 10 分鐘. 最後一招, 把源碼的目錄也放到 Ram Disk. 編譯. 我放棄了. 還是 10 分鐘.

是誰說用 Ram Disk 可以提高編譯速度的? 或者我有什麼沒有考慮到? 

發佈了64 篇原創文章 · 獲贊 2 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章