這個版本重點重構優化了下內部並行構建機制,實現多個target間源文件的並行編譯,以及並行link的支持,同時優化了xmake的一些內部損耗,修復影響編譯速度的一些bug。
經過測試對比,目前的總體構建速度基本跟ninja持平,相比cmake/make, meson/ninja都快了很多,由於它們還額外多了一步生成makefile/build.ninja的過程。android
另外,xmake還增長了對sdcc編譯工具鏈的支持,用於編譯51/stm8等嵌入式程序。git
更多優化細節能夠看下:issue #589github
咱們在termux和macOS上作了一些對比測試,測試工程在: xmake-coreshell
對於相對比較多的target的項目,新版xmake對其構建速度的提高更加明顯。windows
構建系統 | Termux (8core/-j12) | 構建系統 | MacOS (8core/-j12) |
---|---|---|---|
xmake | 24.890s | xmake | 12.264s |
ninja | 25.682s | ninja | 11.327s |
cmake(gen+make) | 5.416s+28.473s | cmake(gen+make) | 1.203s+14.030s |
cmake(gen+ninja) | 4.458s+24.842s | cmake(gen+ninja) | 0.988s+11.644s |
構建系統 | Termux (-j1) | 構建系統 | MacOS (-j1) |
---|---|---|---|
xmake | 1m57.707s | xmake | 39.937s |
ninja | 1m52.845s | ninja | 38.995s |
cmake(gen+make) | 5.416s+2m10.539s | cmake(gen+make) | 1.203s+41.737s |
cmake(gen+ninja) | 4.458s+1m54.868s | cmake(gen+ninja) | 0.988s+38.022s |
xmake --dry-run -v
命令去空運行構建,僅僅爲了查看詳細的構建命令本文由博客一文多發平臺 OpenWrite 發佈!