xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

栏目: 软件资讯 · 发布时间: 4年前

内容简介:这个版本重点重构优化了下内部并行构建机制,实现多个 target 间源文件的并行编译,以及并行 link 的支持,同时优化了 xmake 的一些内部损耗,修复影响编译速度的一些 bug 。 通过测试对比,目前的整体构建速度基...

这个版本重点重构优化了下内部并行构建机制,实现多个 target 间源文件的并行编译,以及并行 link 的支持,同时优化了 xmake 的一些内部损耗,修复影响编译速度的一些 bug 。 通过测试对比,目前的整体构建速度基本跟 ninja 持平,相比 cmake/make, meson/ninja 都快了不少,因为它们还额外多了一步生成 makefile/build.ninja 的过程。

另外,xmake 还增加了对 sdcc 编译 工具 链的支持。

一些优化点

  1. 多个 target 间所有源文件同时并行构建(之前不能跨 target,中途会被 link 给堵住串行化)
  2. 多个无依赖的 target 的 link 可以并行执行(之前只能挨个执行 link )
  3. 修复之前的任务调度 bug,更加细粒度化调度,充分利用 cpu core 资源
  4. 优化 xmake 内部 api 上的一些损耗,这块效果也很明显

更多优化细节可以看下:issue #589

构建速度对比

我们在 termux 和 macOS 上做了一些对比测试,测试工程在: xmake-core

对于相对比较多的 target 的项目,新版 xmake 对其构建速度的提升更加明显。

多任务并行编译测试

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

单任务编译测试

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

简介

XMake 是一个基于 Lua 的轻量级跨平台 c/c++自动构建工具,支持在各种主流平台上构建项目

xmake 的目标是开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建

简单的工程描述

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

包依赖描述

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

官方的 xmake 包管理仓库: xmake-repo

构建工程

$ xmake

运行目标

$ xmake run console

调试程序

$ xmake run -d console

配置平台

$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release]
$ xmake

包依赖管理

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

支持平台

  • Windows (x86, x64)
  • macOS (i386, x86_64)
  • Linux (i386, x86_64, cross-toolchains ..)
  • Android (x86, x86_64, armeabi, armeabi-v7a, arm64-v8a)
  • iOS (armv7, armv7s, arm64, i386, x86_64)
  • WatchOS (armv7k, i386)
  • MSYS (i386, x86_64)
  • MinGW (i386, x86_64)
  • Cygwin (i386, x86_64)
  • SDCC (stm8, mcs51, ..)
  • Cross (cross-toolchains ..)

支持语言

  • C/C++
  • Objc/Objc++
  • Swift
  • Assembly
  • Golang
  • Rust
  • Dlang
  • Cuda

工程类型

  • 静态库程序
  • 动态库类型
  • 控制台程序
  • Cuda 程序
  • Qt 应用程序
  • WDK 驱动程序
  • WinSDK 应用程序
  • MFC 应用程序

更新内容

新特性

  • 添加 powershell 色彩主题用于 powershell 终端下背景色显示
  • 添加xmake --dry-run -v命令去空运行构建,仅仅为了查看详细的构建命令
  • #712: 添加 sdcc 平台,并且支持 sdcc 编译器

改进

  • #589: 改进优化构建速度,支持跨目标间并行编译和 link,编译速度和 ninja 基本持平
  • 改进 ninja/cmake 工程文件生成器插件
  • #728: 改进 os.cp 支持保留源目录结构层级的递归复制
  • #732: 改进 find_package 支持查找 homebrew/cmake 安装的包
  • #695: 改进采用 android ndk 最新的 abi 命名

Bugs 修复

  • 修复 windows 下 link error 显示问题
  • #718: 修复依赖包下载在多镜像时一定概率缓存失效问题
  • #722: 修复无效的包依赖导致安装死循环问题
  • #719: 修复 windows 下主进程收到 ctrlc 后,.bat 子进程没能立即退出的问题
  • #720: 修复 compile_commands 生成器的路径转义问题

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创业时, 我们在知乎聊什么?

创业时, 我们在知乎聊什么?

知乎 / 中信出版社 / 2014-1 / 42.00元

★前所未有的互联网出版实验,500万知友亲手甄选内容,知乎三年创业问答精华大集结 ★史上最真诚创业书,用互联网思维讲透创业的逻辑 ★在知乎,最强大互联网创业群体真实分享创业路上的荣耀与隐忧 ★从Idea到步入正轨,创业公司如何招人、做技术、卖产品、找融资、建团队、处理法务? 他们在知乎聊创业: 创新工场创始人李开复 天使投资人 徐小平 小米科技创始人 雷军......一起来看看 《创业时, 我们在知乎聊什么?》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具