华为方舟编译器开源了介绍了方舟编译器的基本功能与编译方法,那么方舟编译器该怎么用,如何对我们的应用进行优化呢?
查找华为方舟编译器的相关资料,发现其开源范围介绍说:目前开源的部分只是编译器IR+中端语言部分的源码,而编译器前端、后端(生成汇编)、编译优化的代码需要在后续逐步开源(但是从编译情况对比来看,目前除了运行时库生成so文件的部分未开源,其余文件均可生成,具体还需要等待全部代码开源后确认)。
· 正 · 文 · 来 · 啦 ·
好了,话不多说,开始DEMO代码的编译吧(以samples/helloworld为例,在编译前需要保证方舟编译器已经编译通过,生成了需要的maple、mplcg、jbc2mpl、java2jar这四个文件)。
1. 下载环境需要的jar包(开源代码缺少java-core.jar包)
//OpenArkCompiler
//使用wget https://gitee.com/mirrors/java-core/blob/master/java-core.jar 获取的文件有问题
mkdir libjava-core
cd libjava-core
git clone https://gitee.com/mirrors/java-core.git
mv java-core/java-core.jar ./
2. 配置环境,生成libjava-core IR文件
//OpenArkCompiler
source build/envsetup.sh
//OpenArkCompiler/libjava-core
../out/bin/jbc2mpl -injar java-core.jar -out libjava-core
Tips:
-
这个过程使用了知乎大神的配置方法,在此感谢!(附链接:
-
下载java-core.jar包时一定记得使用git clone方法
3. libjava-core IR文件生成
//OpenArkCompiler/libjava-core
java-core.jar
libjava-core.mpl
libjava-core.mplt
4. 环境配置成功,开始编译HelloWorld
//OpenArkCompiler/samples/helloworld
make
5. helloworld编译结果展示
HelloWorld.class
HelloWorld.jar
HelloWorld.mpl
HelloWorld.mplt
HelloWorld.VtableImpl.groots.txt
HelloWorld.VtableImpl.mpl
HelloWorld.VtableImpl.primordials.txt
HelloWorld.VtableImpl.s
到这里就编译结束了,程序怎么运行呢?查找官方说明:
歇菜了,关键部分暂时未开源,目前只能看到优化后的中间文件,可执行的.so文件生成过程暂未开放。退而求其次,我们从官网上面可以看到其运行结果:
(https://www.openarkcompiler.cn/demonstration)
目前方舟编译器的源码还未完全开源,在代码执行上面能够接触的就是这么多,但是其设计原理与方案都有详细的文档和代码介绍,可供众多技术人学习。
今天看了一篇文章,对方舟编译器的介绍非常详细,有兴趣可以了解下方舟编译器的成长历程与突破性的设计方案:
标签:core,java,方舟,开源,编译,编译器,应用 来源: https://blog.csdn.net/littlebirdfirst/article/details/100634654
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。