构建您的 React Native 应用程序可能很昂贵,并且需要花费开发人员几分钟的时间。随着项目的增长,并且通常在拥有多个 React Native 开发人员的大型组织中,这可能会出现问题。但是,如果我告诉您有一种方法可以显着减少构建时间呢?
想象一下: 您当前的构建时间高达2 分 4 秒。
现在,想象一下将时间缩短到仅仅41 秒。
(这些是在 M2 Mac 上拍摄的,但时间的减少在所有设备上应该是相似的)
是的,你没有看错。从两分钟多到不到一分钟。构建时间减少了 67%,让您在开发周期中节省了宝贵的时间。
但你问这怎么可能?实现这些令人印象深刻的时间节省的秘诀是什么?
输入ccache。
ccache是一个编译器缓存。它通过缓存以前的编译并检测何时再次进行相同的编译来加速 C/C++ 代码的重新编译。这可以显着减少重新编译代码所需的时间,尤其是在大型项目中。
第一步:安装ccache
首先,您需要安装ccache. 如果您使用的是 macOS,则可以通过在终端中运行以下命令来执行此操作:
brew install ccache
第 2 步:将 Ccache 添加到您的路径
安装后ccache,您需要将其添加到您的路径中。您可以通过将以下行添加到您的 shell 配置文件(如.bashrc、.bash_profile或.zshrc)来执行此操作:
export PATH= "/opt/homebrew/opt/ccache/libexec: $PATH "
然后,获取您的配置文件或打开一个新的终端会话以应用更改。
第三步:配置缓存
接下来,您需要ccache为各种编译器创建符号链接。你可能需要sudo这个。在您的终端中运行以下命令:
sudo ln -s $(which ccache) /usr/local/bin/gccln -s $(which ccache) /usr/local/bin/gcc
sudo ln -s $(which ccache) /usr/local/bin/g++
sudo ln -s $(which ccache) /usr/local/bin/cc
sudo ln -s $(which ccache) /usr/local/bin/c++
sudo ln -s $(which ccache) /usr/local/bin/clang
sudo ln -s $(which ccache) /usr/local/bin/clang++
第 4 步:验证配置
您可以通过检查将使用ccache哪个版本来验证设置是否正确。gcc在您的终端中运行以下命令:
which gcc
如果输出是/usr/local/bin/gcc,那么您实际上是在调用ccache,这将gcc包装调用。
第 5 步:测试设置
最后,要测试设置,请删除您的android/build文件夹并再次运行编译命令。您应该注意到构建时间显着减少。
实用脚本
缓存清理
如果需要清除缓存,可以使用以下命令:
ccache --clear--clear
缓存统计
您可以使用以下命令检查缓存命中率/未命中率:
ccache -s
此命令聚合所有构建的统计信息。您可以在构建之前重置它们以验证缓存命中率ccache --zero-stats。
什么可能出错以及如何解决
请注意,此设置ccache将影响您在计算机上运行的所有编译,而不仅仅是那些与 React Native 相关的编译。如果您未能安装/编译其他软件,这可能是原因。如果是这种情况,您可以删除使用以下命令创建的符号链接:
sudo unlink /usr/local/bin/gccunlink /usr/local/bin/gcc
sudo unlink /usr/local/bin/g++
sudo unlink /usr/local/bin/cc
sudo unlink /usr/local/bin/c++
sudo unlink /usr/local/bin/clang
sudo unlink /usr/local/bin/clang++
这会将您的机器恢复到原始状态并使用默认编译器。
你有它!在您的工具包中ccache,您现在已准备好大幅缩短 React Native 构建时间。但这对您和您的团队意味着什么?
就像来自硅谷的 Dinesh 和 Gilfoyle,他们将他们的团队称为“种马”,一个比一个壮丽,现在你也可以用同样的眼光看待你的团队。
节省下来的时间让您的团队可以专注于真正重要的事情——构建令人惊叹的功能、消除错误并交付出色的产品。您不仅仅是开发人员。你是一队种马,准备在比赛中驰骋,让你的竞争对手望尘莫及。
关注公众号:Android老皮
解锁 《Android十大板块文档》 ,让学习更贴近未来实战。已形成PDF版
内容如下:
1.Android车载应用开发系统学习指南(附项目实战)
2.Android Framework学习指南,助力成为系统级开发高手
3.2023最新Android中高级面试题汇总+解析,告别零offer
4.企业级Android音视频开发学习路线+项目实战(附源码)
5.Android Jetpack从入门到精通,构建高质量UI界面
6.Flutter技术解析与实战,跨平台首要之选
7.Kotlin从入门到实战,全方面提升架构基础
8.高级Android插件化与组件化(含实战教程和源码)
9.Android 性能优化实战+360°全方面性能调优
10.Android零基础入门到精通,高手进阶之路
敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔