是否有办法减少rk3568全量编译生成image的时间? 精华

lakewater 显示全部楼层 发表于 2024-5-8 08:22:17
为了生成rk3568的image,每次需要拉取最新代码执行全量编译,在个人计算机上所用时间比较长,并且生成out文件的时候,cpu占用率长时间达到100%,使用top命令发现启动了很多CLang的进程,而且很快就结束,看起来就是启动多个进程来编译不同的cpp文件来生成.o文件,有没有办法加快这个过程,并且减少CPU使用率?
不确定build.sh过程中是否使用了线程池,如果没有,频繁的启动和结束进程,可能是需要很多CPU.

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论9

润开鸿_梁开祝

沙发 发表于 2024-5-8 16:09:05
全量编译要做代码扫描,然后对修改有依赖的代码,都会重新编译一次,确实会消耗大量的时间的。

建议做一次全量编译后,后面都尽量单编模块或组件,比如单编内核:
./build.sh --product-name rk3568 --ccache --build-target kernel

hb build -T kernel

然后单独烧录某个镜像或者通过hdc将新编译出来的库文件推送到开发板上就行了。

lakewater

发表于 2024-5-10 08:50  IP属地: - 中国浙江省金华市 中国电信IDC

回复 润开鸿_梁开祝: 这个hb命令读取的是哪个文件里面的参数配置? 看起来比build.sh命令简单

润开鸿_梁开祝

发表于 2024-5-10 09:04  IP属地: - 中国广东省广州市 中国电信IDC

回复 lakewater: 可以参考一下这个帖子,不过那是基于OH 3.1 版本的:
https://ost.51cto.com/posts/12065

【2 条回复】

润开鸿_闻飞

板凳 发表于 2024-5-9 10:30:29
当前测试首次编译rk3568的结果如下:
1、i5 10代的笔记本编译rk3568的时间在5个小时左右
2、i7 10代台式机编译rk3568的时间在2小时左右
3、i9 13900K的编译rk3568的时间在半小时左右,第二次编译时间在5-10分钟

lakewater

发表于 2024-5-10 08:48  IP属地: - 中国浙江省金华市 中国电信IDC

回复 润开鸿_闻飞: 有时候如果不删除out目录,在编译自己修改的代码模块,即使没有修改,经常报奇怪的错误,所以很多时候就需要重新拉全部代码,然后执行全量编译,但是有时候也是报莫名奇妙的错误,就是那种不好找原因的那种,所以现在考虑每次全量编译,就删除out目录,这样差不多每次都是成功的,但是这样,时间就还是减少不了。

润开鸿_闻飞

发表于 2024-5-10 09:24  IP属地: 江苏省扬州市

回复 lakewater: 可以考虑按照以下方法操作:

润开鸿_闻飞

发表于 2024-5-10 09:34  IP属地: - 中国江苏省扬州市 中国电信IDC

回复 lakewater: 可以考虑以下几个方法:
1、OpenHarmony代码都放在同一个目录下,例如各个版本都放在~/OpenHarmony目录下,然后下载所需的版本,例如~/OpenHarmony/master,执行./build/prebuilts_download.sh,确保第一次必须是成功的,然后全量编译也都是成功的,这时不要删除~/OpenHarmony/openharmony_prebuilts,下次能复用,如果有错误,删除代码和~/OpenHarmony/openharmony_prebuilts,重新操作
2、OpenHarmoy代码下载可参考https://forums.openharmony.cn/fo ... tid=2803&extra=
3、一般奇怪的错误通常出在~/OpenHarmony/openharmony_prebuilts第一次下载有问题,然后会一直遗留下来,其次如果感觉有问题可以删除out目录后编译
4、正常情况不需要删除代码后重新下载的
5、如果Ubuntu环境问题,可参考下面的链接进行一键适配Ubuntu编译环境:https://forums.openharmony.cn/fo ... thread&tid=2804

【5 条回复】 查看全部

aero

地板 发表于 2024-7-3 10:38:06
可以参考这篇,方法总结十分全面 https://ost.51cto.com/posts/20974
共9 条回复,点击查看

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部