这个版本重点重构优化了下内部并行构建机制,实现多个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 发布!