`

提升Xcode编译性能,RAM磁盘编译

阅读更多

 

DerivedData

 

Xcode会在文件系统中集中的缓存临时信息。

每次对Xcode iOS项目进行clean、build或者在iOS虚拟机上launch,Xcode都会在DeriveData文件夹中进行读写操作。换句话说,就是将Derived Data的读写从硬盘移动到内存中。

DeriveData文件夹中包含了所有的build信息、debug- 和 release- built targets以及项目的索引。当遇到零散索引(odd index)问题(代码块补全工作不正常、经常性的重建索引、或者运行项目缓慢)时,它可以有效地删除衍生数据。删除这个文件夹将会导致所有Xcode上的项目信息遭到破坏。

 

Step 1

将DeriveData下的文件删除:

rm -rf ~/Library/Developer/Xcode/DerivedData/*

删除的这些数据,Xcode会在Build时重新写入的。

 

Step 2

在~/Library/Developer/Xcode/DerivedData.上部署安装2 GB大小的RAM磁盘。

进到~/Library/Developer/Xcode/DerivedData.

cd ~/Library/Developer/Xcode/DerivedData

 

创建2 GB的RAM磁盘(size的计算公式 size = 需要分配的空间(M) * 1024 * 1024 / 512):

hdid -nomount ram://4194304

 此行命令后将会输出RAM磁盘的驱动名字:/dev/diskN(N为数字)。

 

初始化磁盘:

newfs_hfs -v DerivedData /dev/rdiskN

     Initialized /dev/rdisk3 as a 2 GB case-insensitive HFS Plus volume

 

安装磁盘:

diskutil mount -mountPoint ~/Library/Developer/Xcode/DerivedData /dev/diskN

这会在已存在的DeriveData上安装一个卷,用于隐藏旧的文件。这些文件仍会占据空间,但在移除RAM磁盘之前都无法访问。

 

在重启或从Finder中弹出RAM磁盘时,磁盘中的内容将会消失。下次再创建磁盘时,Xcode将会重新构建它的索引和你的项目中间文件。

 

创建虚拟磁盘后, 并不是直接占用掉所有分配的空间, 而是根据虚拟磁盘中的文件总大小来逐渐占用内存.


注:如果创建的虚拟磁盘已满, 会导致编译的失败. 此时清除掉Derived Data后重新编译, 就算有足够的空间也还是有可能会导致编译失败. 重启Xcode可以解决此问题.

 

对手头Demo进行编译测试,由于编译本身读写内容较少,耗时较短,都在10s到20s之内,所以提速感觉不明显,在1s到2s间,也许应用到较大的项目中会有比较好的体现。

 

参考:   Reduce XCode build times

 

            【iOS Tip】提高Xcode编译速度

0
0
分享到:
评论

相关推荐

    优化Xcode编译时间

    3. **硬件性能**:计算机的处理能力、内存大小等硬件配置也会影响编译速度。 #### 优化策略 ##### 1. 优化编译过程 - **避免不必要的构建**:当对项目进行修改后重新编译时,尽可能减少不必要的构建操作。例如,...

    Xcode编译静态库方法

    在iOS开发中,Xcode是主要的集成开发环境,它提供了创建、编译和调试应用程序的功能。本篇文章将深入探讨如何使用Xcode编译静态库,这是iOS开发中常见的需求,尤其是在开发组件化或者第三方库时。 静态库是一种预先...

    XCode编译速度慢的处理方法

    同时,定期更新Xcode到最新版本也能获取编译速度的提升,因为每次更新通常都会包含性能优化。 在实际开发中,遇到Xcode的警告和错误时,需要及时分析和解决,以保持项目的健康状态。此外,了解Xcode的使用教程、iOS...

    XCode编译缺失类

    XCode编译缺失类

    xcode编译webkit资料

    在Xcode中编译WebKit,对于开发者来说是一项深入学习Web技术、了解浏览器内部工作原理的重要实践。这个过程涉及到的内容广泛,包括源码管理、C++编程、构建系统、跨平台开发等多个方面。以下将详细探讨这些知识点: ...

    XCODE 编译选项.

    在iOS和macOS开发中,Xcode是Apple官方推荐的集成开发环境(IDE),它包含了众多功能,其中编译选项是开发者进行应用构建时的...通过灵活运用这些选项,开发者可以提升代码质量,优化性能,确保应用的稳定性和兼容性。

    XCode 加快编译链接速度的方法

    在iOS开发过程中,Xcode是开发者最常用的工具之一。然而,随着项目的规模逐渐增大,编译和链接的时间可能会变得越来越长,严重影响了...持续关注Xcode的性能优化,可以让开发过程更加流畅,也能带来更好的开发体验。

    xcode编译,启动模拟器调试工具

    在iOS应用开发中,Xcode是苹果官方提供的集成开发环境(IDE),而Xcodebuild是Xcode的一部分,是一个命令行工具,允许开发者在没有图形界面的情况下编译、构建和打包iOS或macOS应用程序。本篇文章将详细介绍如何使用...

    Xcode真机编译包 13.5.zip

    下载解压放到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport即可,重启Xcode即可,无需升级系统和Xcode

    Xcode真机编译包 13.6.zip

    下载解压放到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport即可,重启Xcode即可,无需升级系统和Xcode

    XCode 15.3 编译私有库 报错问题

    总之,解决Xcode 15.3编译私有库报错问题需要深入理解静态库的工作原理,熟悉Xcode的编译过程,以及对API和架构变化的敏感度。同时,利用好社区资源和依赖管理工具,可以极大地减轻这种问题带来的困扰。

    Xcode 下编译时间分析工具.zip

    在Xcode开发过程中,优化编译时间是提升开发效率的关键环节。"Xcode 下编译时间分析工具"是一个专门用于Swift项目的构建时间分析器,它能够帮助开发者识别并解决项目中的性能瓶颈,从而减少编译等待时间。这个开源...

    cocos2d-x 2.1 魔塔源码 魔塔案例 魔塔源代码 xcode编译成功

    《cocos2d-x 2.1:深入解析魔塔源码及Xcode编译实践》 cocos2d-x是一款强大的2D游戏开发框架,它基于C++,支持跨...而在Xcode环境下成功编译运行,不仅能验证源码的正确性,还能帮助开发者更好地理解和优化游戏性能。

    Xcode编译学习环境C语言练习常用算法从初学者到熟练者_ AlgorithmExercise.zip

    Xcode编译学习环境C语言练习常用算法从初学者到熟练者_ AlgorithmExercise

    mac osx xcode 虚拟磁盘创建

    因此,内存磁盘常用于需要高速临时存储但不需持久化的场景,如编译代码、缓存数据或进行性能测试。 在Mac OS X上,我们可以使用Xcode的工具链之一——`hdiutil`来创建和管理虚拟磁盘。`hdiutil`是一个命令行工具,...

    Xcode8编译xcode9+打包的framework所需FileProvider.framework和IOSurface.framework

    Xcode版本更新频繁,每个新版本通常会带来许多新特性和性能提升。本话题主要涉及Xcode 8和Xcode 9之间的兼容性问题,以及如何处理特定框架的缺失。 标题提及的“Xcode8编译xcode9+打包的framework所需FileProvider....

    osx10.11+xcode7.3编译libVLC-tools库

    - 保持Xcode和系统更新,以获得更好的兼容性和性能。 通过以上步骤,你应该能够在OS X 10.11 El Capitan上成功编译libVLC-tools库,并能够利用这些工具进行多媒体开发工作。记住,理解每个步骤的目的和作用对于...

    Mac下编译POCO库(含OpenSSL库编译)

    在Mac环境下编译POCO库,特别是当需要包含OpenSSL库时,需要遵循一系列步骤,因为这涉及到多个库的配置和编译。首先,我们来详细了解如何编译OpenSSL库,然后是POCO库。 一、编译OpenSSL库 1. 下载OpenSSL源代码:...

Global site tag (gtag.js) - Google Analytics