xcbuild可用性分析报告

xcbuild可用性分析报告

项目简介

xcbuild是Facebook 出品的开源 App 构建工具,一款能够为 App 构建过程与多平台运行提供更快构建、更好文档并兼容 Xcode 的构建工具。

官方对其特性介绍如下:

  • 超快的增量构建和构建频率;
  • 支持构建Xcode项目和workspace;
  • 支持Swift应用与框架;
  • 使用Ninja和llbuild;
  • 完全兼容xcpretty;
  • 基于BSD开源许可;
  • 基于Linux平台构建。

官方给出的性能比较:

xcbuild可用性分析报告_第1张图片
perfermance

XCBuild安装配置步骤:(MacOS下)

  1. 安装homeBrew:http://brew.sh/,直接按照官网步骤去终端里运行即可。
  2. 安装CMake和Ninja:
brew install cmake ninja
  1. 从git上check xcbuild工程:

git clone https://github.com/facebook/xcbuild
cd xcbuild
git submodule update --init
make```

XCBuild使用方法

在xcbuild目录下输入 ./build/xcbuild -workspace [workspaceName] -scheme [schemeName]进行编译即可。

实验

为了测试xcbuild是否真的有fb说的那么神,特用动态资源下载的framework来做实验。

  • 样本对象:动态资源下载 RMResourceManager
  • 对照组:xcodebuild和xcbuild
  • 测试方法:在同一条件下分别build RMResourceManager,用time打印命令执行时间。需要注意的是,每次build完需要删除路径上build出来的framework和clean项目,以免造成其它结果的干扰
  • time中会打印三种时间,分别为real,user,sys。本文以real为准。

结果

平台 完全build耗费时间 增量build耗费时间
xcodebuild 3.125s 1.056s
xcbuild 4.974s 4.814s
xcbuild+ninja 3.696s 0.329s

结果分析

  • xcbuild一定要和ninja一起用,不然相比xcodebuild没有优势;
  • 完全build(即clean build)下,xcbuild+ninja并没有太大优势;但是增量更新上,xcbuild+ninja可以说是压倒式的胜利。
  • fb在宣传上确实没有放水,在增量性能上性能很高。
  • 但是鉴于技术过于新,稳定性不能保证,所以建议先保持关注

附录

测试时使用的命令:

  • xcodebuild:
time xcodebuild -workspace RMResourceManager.xcworkspace -scheme RMResourceManager
  • xcbuild:
time ./xcbuild/build/xcbuild -workspace /Users/mengdao/Desktop/RMResourceManager_9.6_160229/RMResourceManager.xcworkspace -scheme RMResourceManager
  • xcbuild+ninja:
time ./build/xcbuild -executor ninja -workspace /Users/mengdao/Desktop/RMResourceManager_9.6_160229/RMResourceManager.xcworkspace -scheme RMResourceManager

你可能感兴趣的:(xcbuild可用性分析报告)