首页
社区
课程
招聘
[原创]从华为方舟编译器看一种JavatoC语言解释器的实现
发表于: 2019-5-2 16:48 14948

[原创]从华为方舟编译器看一种JavatoC语言解释器的实现

2019-5-2 16:48
14948
收藏
免费 4
支持
分享
打赏 + 5.00雪花
打赏次数 1 雪花 + 5.00
 
赞赏  junkboy   +5.00 2019/05/02 感谢分享~
最新回复 (39)
雪    币: 916
活跃值: (3434)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
26
amzilun 娃哥一针见血,不愧是老司机,其实我也觉得应该不见得是完全脱离虚拟机体系,有些地方可以适当用发射来实现JNI掉JAVA方法
我又想到了arm是有java硬件加速的,就是说cpu是可以直接执行java bytecode的,不过我也不太了解arm这个东西,Android上没用应该是因为其跑的是Dalvik bytecode。

https://en.wikipedia.org/wiki/Jazelle
最后于 2019-5-6 17:42 被葫芦娃编辑 ,原因:
2019-5-6 17:42
0
雪    币: 37
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
估计又是想GTR一样,里面实际是LoadRunner的东西。
2019-5-6 18:44
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
yy虫子yy 根据方舟编译器的官宣ppt,工程编译生成apk后,apk里面没有dex,只有so
方舟还没有开源?
2019-5-7 00:11
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
amzilun 感谢JB大神,感谢兄弟
jb为啥成大神了呢
2019-5-7 00:31
0
雪    币: 14872
活跃值: (6093)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
如果真如华为所说的抛弃虚拟机,那么安卓就不是安卓,而是回归到linux。
这个编译器目前至少要2个硬件版本:一个是生成X86指令、一个是ARM指令
2019-5-8 12:02
0
雪    币: 14872
活跃值: (6093)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
是一种JavatoC的思路。其实这种方式不仅仅能提高执行速度,还可以提升安全性,所以还是挺有前景的技术.
编译成机器指令就提高了安全性?这是什么逻辑?windows跑的exe程序大部分都是机器指令没听说windows有多安全?
2019-5-8 17:58
0
雪    币: 10845
活跃值: (1054)
能力值: (RANK:190 )
在线值:
发帖
回帖
粉丝
32
amzilun 如果是安装过程中,就是华为手机的runtime自带了编译器,这个思路就是编译器和运行时深度融合了,是很有野心的想法 不知道诶,编译放到用户侧会暴露源码,编译也非常耗时,如果在厂家的电脑里用编译器编译 ...
我们已经在特定OS上尝试:同样的JAVA程序 在被下载到不同特定硬件环境中时 在install上直接完成字节流的转换以及数据的本地化。除了JAVA防火墙还开着以外 run的时候效率几乎和native无异
2019-5-8 23:21
0
雪    币: 3425
活跃值: (1479)
能力值: ( LV9,RANK:320 )
在线值:
发帖
回帖
粉丝
33
方舟编译器为什么要重复发明轮子?直接向Google提交相关的AOT编译补丁不好嘛?垃圾回收如果不是HotSpot JVM的g1或zgc的话意义不大,代码调度优化性能提升有限,其它的比如编译器优化、寄存器分配等相关编译技术已经发展到了瓶颈期。
2019-5-9 01:00
0
雪    币: 8715
活跃值: (8619)
能力值: ( LV13,RANK:570 )
在线值:
发帖
回帖
粉丝
34
tDasm 是一种JavatoC的思路。其实这种方式不仅仅能提高执行速度,还可以提升安全性,所以还是挺有前景的技术. 编译成机器指令就提高了安全性?这是什么逻辑?windows跑的exe程序大部分都是机器指令没 ...
是这样的呀。windows闭源,反汇编还都是机器指令,安卓开源不说,java伪代码和smali还特别好读,所以,,安全只能是相对把
不过如果在java转JNI的过程中,通过变量重命名,字符串的加解密,或者添加些冗余逻辑,也是可以起到“混淆”效果的
最后于 2019-5-9 09:07 被r0Cat编辑 ,原因:
2019-5-9 09:06
0
雪    币: 8715
活跃值: (8619)
能力值: ( LV13,RANK:570 )
在线值:
发帖
回帖
粉丝
35
vasthao 方舟编译器为什么要重复发明轮子?直接向Google提交相关的AOT编译补丁不好嘛?垃圾回收如果不是HotSpot JVM的g1或zgc的话意义不大,代码调度优化性能提升有限,其它的比如编译器优化、寄存 ...
编译优化的细节我真不懂,这个编译器重点在于语法的转换。就从另一个角度说说吧,我只是听说啊,几年前就有安全厂商实现了兼容性很好的JavatoC。而且这东西发布后,绝大多数人都会觉得“牛逼,民族希望,买买买”吧,余总非常擅长营销的。
我有几个问题想请教哈,虚拟机优化关键手段还是以GC为主么?你觉得编译优化目前最有价值的技术方向在哪?你怎么看嵌入式环境下的虚拟机和编译器?
最后于 2019-5-9 09:58 被r0Cat编辑 ,原因:
2019-5-9 09:25
0
雪    币: 8715
活跃值: (8619)
能力值: ( LV13,RANK:570 )
在线值:
发帖
回帖
粉丝
36
看场雪 我们已经在特定OS上尝试:同样的JAVA程序 在被下载到不同特定硬件环境中时 在install上直接完成字节流的转换以及数据的本地化。除了JAVA防火墙还开着以外 run的时候效率几乎和native无 ...
我写之前去了一趟华为体验店,感觉速度好像和我的华为老机器一样。。而且看优酷视频时还突然弹出一个“资源正在加载”,还是系统提示?感觉很奇怪
最后于 2019-7-26 20:36 被r0Cat编辑 ,原因:
2019-5-9 09:32
0
雪    币: 8715
活跃值: (8619)
能力值: ( LV13,RANK:570 )
在线值:
发帖
回帖
粉丝
37
飞天毛驴腿 关键字:llvm
大佬是内部人士吗?说实话 我觉得llvm比soot靠谱的不是一点半点了,至少ir的普适性和可靠性,以及后端编译的兼容性方面就好很多。
如果用LLVM,华为只需要写一个java to IR 的pass就可以,难度大大降低。
编译和运行时的优化甚至可以基于LLVM的IR,就是不知道会不会有法律风险
最后于 2019-7-26 20:42 被r0Cat编辑 ,原因:
2019-6-19 13:07
0
雪    币: 241
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
yy虫子yy 根据方舟编译器的官宣ppt,工程编译生成apk后,apk里面没有dex,只有so
这么骚?
2019-6-22 00:00
0
雪    币: 199
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
非常期待方舟编译器。
2019-6-22 22:31
0
雪    币: 161
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
看不懂,不过期待方舟
2019-7-5 22:18
0
游客
登录 | 注册 方可回帖
返回
//