OpenHarmony开发者论坛

标题: 是否有办法减少rk3568全量编译生成image的时间? [打印本页]

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


作者: 润开鸿_梁开祝    时间: 2024-5-8 16:09
全量编译要做代码扫描,然后对修改有依赖的代码,都会重新编译一次,确实会消耗大量的时间的。

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

hb build -T kernel

然后单独烧录某个镜像或者通过hdc将新编译出来的库文件推送到开发板上就行了。
作者: 润开鸿_闻飞    时间: 2024-5-9 10:30
当前测试首次编译rk3568的结果如下:
1、i5 10代的笔记本编译rk3568的时间在5个小时左右
2、i7 10代台式机编译rk3568的时间在2小时左右
3、i9 13900K的编译rk3568的时间在半小时左右,第二次编译时间在5-10分钟
作者: lakewater    时间: 2024-5-10 08:48
回复 润开鸿_闻飞: 有时候如果不删除out目录,在编译自己修改的代码模块,即使没有修改,经常报奇怪的错误,所以很多时候就需要重新拉全部代码,然后执行全量编译,但是有时候也是报莫名奇妙的错误,就是那种不好找原因的那种,所以现在考虑每次全量编译,就删除out目录,这样差不多每次都是成功的,但是这样,时间就还是减少不了。
作者: lakewater    时间: 2024-5-10 08:50
回复 润开鸿_梁开祝: 这个hb命令读取的是哪个文件里面的参数配置? 看起来比build.sh命令简单
作者: 润开鸿_梁开祝    时间: 2024-5-10 09:04
回复 lakewater: 可以参考一下这个帖子,不过那是基于OH 3.1 版本的:
https://ost.51cto.com/posts/12065
作者: 润开鸿_闻飞    时间: 2024-5-10 09:24
回复 lakewater: 可以考虑按照以下方法操作:
作者: 润开鸿_闻飞    时间: 2024-5-10 09:34
回复 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
作者: meiduyandekugua    时间: 2024-5-29 15:47
回复 润开鸿_闻飞: 大佬你测试过分布式画板demo嘛
作者: 润开鸿_闻飞    时间: 2024-5-29 19:14
回复 meiduyandekugua: 这块没有测试过哦
作者: aero    时间: 2024-7-3 10:38
可以参考这篇,方法总结十分全面 https://ost.51cto.com/posts/20974




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5