我每隔十分鐘就會構建一個webkit(2百萬行代碼),以查看其中的更改輸出,並且我的計算機上的webkit鏈接需要處理600-700在我的硬盤上有MB的目標文件。這需要大約1.5分鐘。我想加快這個鏈接過程。加速鏈接速度/ linux上的快速鏈接
有沒有任何機會,我可以告訴os只保留所有的目標文件在RAM(我有4 GB的RAM)。有沒有其他的方法來加快鏈接?
任何想法或幫助表示讚賞!
這是一個命令,它需要1.5分鐘,
我每隔十分鐘就會構建一個webkit(2百萬行代碼),以查看其中的更改輸出,並且我的計算機上的webkit鏈接需要處理600-700在我的硬盤上有MB的目標文件。這需要大約1.5分鐘。我想加快這個鏈接過程。加速鏈接速度/ linux上的快速鏈接
有沒有任何機會,我可以告訴os只保留所有的目標文件在RAM(我有4 GB的RAM)。有沒有其他的方法來加快鏈接?
任何想法或幫助表示讚賞!
這是一個命令,它需要1.5分鐘,
我使用tempfs和gold linker解決了這個問題。
1)。 tmpfs:將包含所有目標文件的目錄掛載爲tmpfs。
2)。 gold linker:使用gold鏈接器可以使鏈接速度提高5-6倍,而tmpfs的優勢將比普通鏈接提高7-8倍。在ubuntu上使用以下命令,您的普通鏈接器將被Gold Linker替換。
sudo apt-get install binutils-gold
你可以找到一些鏈接錯誤使用黃金鍊接器,下面的線程是一個很好的幫助。
說實話我不知道我理解的問題,但會像ramfs是有用的,以您?
獲取您的Linux機器的SSD磁盤。 如果寫入性能仍然存在問題,請將輸出路徑配置爲位於RAM磁盤中。
您是否測量了1.5分鐘內有多少IO真正被綁定? Webkit太大意味着您可能會遇到內存緩存垃圾。你應該試着找出你有多少L1/L2緩存未命中。我會建議這是一個問題。 在這種情況下,您唯一的希望就是GCC團隊中的某個人正在研究這個問題。順便說一下:微軟在極端鏈接器時代也有同樣的問題。
只看着你的粘貼垃圾箱。您應該真的嘗試將單個.o文件捆綁到.lib中 - 這可能是一個問題。並嘗試使用ReiserFS,它比其他文件系統更適合於小文件。 – Lothar 2010-09-16 16:55:42
您能否確認使用例如:頂部還是vmstat?數據應該放在緩存中,但鏈接器也需要一些時間來處理它 - 所以你可能會受到CPU的限制。 – 2010-09-16 13:03:47
@Turbo J,我發現在我的處理器中,只有一個內核正在使用22-25%。 – SunnyShah 2010-09-16 14:48:27