» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

没人转吗,算是华为官方对方舟编译器的说明

posted by wap, platform: Samsung
引用:
原帖由 @masterfish  于 2019-8-9 06:49 发表
1、动态语义分析可以说是这次最有看头的地方,等开源了看大佬分析了,毕竟确实做出来了;
2、引用计数我认为远比java的暂停回收式gc好用多了,对内存的利用效率高多了。对于鸿蒙系统(方舟肯定是为鸿蒙服务的)这样的实时系统来说,几乎是唯一适合的gc模型。唯一的问题是循环引用的问题,但这其实是少数情况,可以单独处理。python是采用这样的,rust也是这种。
3、方舟我认为最牛逼的还是对多语言的融合,这个我觉得不会是完全创新,应该有llvm的底子,但是能够融合java、c/c++等,抛开傻逼透顶的jni,可以说功德无量了,同样,等开源了看大佬的分析。
看不懂,引用计数是标记垃圾的方法,和暂停回收有啥关系?


TOP

posted by wap, platform: Samsung
引用:
原帖由 @masterfish  于 2019-8-9 12:37 发表
引用计数和标记是两种不同的垃圾回收机制。

引用计数是如果一个变量一个分配的内存空间,会给一个计数器+1,当另一个变量也指向这块内存,就计数器继续+1,如果这些指向内存的变量指向其他位置,或者被删除了,那么就计数器1,计数器变为0,就表示没有任何变量指向这块内存,那么就可以删除这块内存了。这整个过程不需要停下任何其他程序,资源损耗非常小。
引用计数的问题,是如果有两个指针互相循环引用,那末就会出现永远不会减到0的情况,造成内存泄露。
内存标记是java采用的垃圾回收机制,就是后台独立运行一个监控程序,监控所有的申请的内存是否被变量引用,一旦没有被引用,就证明这块内存可以回收,但是为了回收内存,监控程序会暂停所有的程序,然后将内存进行回收顺便处理碎片,所以会有卡顿,但不会有循环引用无法回收的问题。
现在python这类的语言,主要采用的是二者的综合,99%的内存是采用引用计数进行回收,剩下极少数循环引用的设置监控程序来处理。
你不要瞎说好么……
整天复制别人的装懂也是够了……

本帖最后由 yfl2 于 2019-8-9 13:11 通过手机版编辑



TOP

posted by wap, platform: Samsung
引用:
原帖由 @cj2047  于 2019-8-9 13:33 发表
???
引用计数法和可达性分析都只是判断对象是否可以回收的办法, 只能算垃圾回收机制中的一部分内容
他错误百出,啥都不懂,只是装逼罢了


TOP

posted by wap, platform: Samsung
引用:
原帖由 @masterfish  于 2019-8-9 13:38 发表
你有什么料露出来看看?
没,只是看到你扯的实在太傻太low

TOP

posted by wap, platform: Samsung
引用:
原帖由 @momou  于 2019-8-9 17:38 发表
不要理他,一个不学无术的喷子troll
你和他一样都是不懂装懂

这次你煽风点火很失败,因为他错的离谱,你也一窍不通,所以没翻盘机会……

本帖最后由 yfl2 于 2019-8-9 18:42 通过手机版编辑

TOP

发新话题
     
官方公众号及微博