eddic 現在可以使用 Clang 進行編譯了(詳情), 我想在兩個不同的編譯器下比較編譯時間和生成可執行文件的性能。我選擇的編譯器是 GCC 4.7.2 和CLang 3.1,測試平台 Gentoo。
首先我使用不同的參數比較二者的編譯時間,包括 debug 模式以及 -O2 和 -O3 編譯參數,編譯結果比較:
詳細數據:
這個結果顯示 Clang 的編譯速度比 GCC 快多了,三個不同的編譯模式下,CLang 的速度比 GCC 快近乎兩倍。
接下來我測試生成可執行文件的性能,我測試了三件事,整個測試套件和兩個測試用例,我知道是最慢的EDDI編譯器。針對每種情況,我連續執行 5 個最慢的操作。
詳細的數據:
這次的差別就比較小,-O2 下 gcc 性能稍好,但在 -O3 下就相當了。對這個結果有一些失望,我原想會有大一點的差距。這說明了 Clang 並不是很多人說的比 GCC 優秀很多,當然這也可能取決於所編譯的程序不同。
很顯然,在編譯 eddic 時,Clang 比 GCC 快得多,但是生成的可執行文件在執行性能上沒有多大區別。
英文原文,OSCHINA 原創翻譯