- 展望未来,垃圾回收会从语言中消失吗?
我觉得不会,虽然无GC的语言更快更省电效率更高,不影响吞吐量,但GC很难从语言中消失,除非机器比程序员贵很多,写着爽是对一门语言最高的肯定。科技以人为本。 - JVM的GC
最大的问题就是Stop The World,或者说最大的问题是无法预估的延时,这也正是实时系统与非实时系统的区别,GC导致的最长停顿是多长?100ms?1s?10s?100s?无法确定这个值。线程在执行一段代码时,有时候没有办法脱离出来,去执行更高优先级的任务,而我们系统中的任务,有的是可以忍受停顿,甚至1分钟的停顿也没关系,有的不行(比如刹车,等一分钟再刹车可以吗?) - Reactor
如果建立一个跟cpu的核数一样的线程池,每个线程池配一个任务队列,并且这个任务队列是优先队列,即高优先级任务会优先执行,并且,还有一点,可以限制一个任务能使用的资源,比如,它最多能用多少个时间片,最多能用多少内存,如果这样来实现,系统的响应性会不会好一下,如果还能配置可忍受停顿时间那就更好了。 - Erlang与协程
协程或者说erlang中的轻量级进程,可以控制进程消耗的cpu,越过操作系统的调度,让虚机去调度任务执行,并且分进程GC,每个进程的内存量非常小,并且不可变的特性可以使GC分析变得简单粗暴,这些共同作用,可以使erlang实现软实时的目标,值得借鉴。 - 引用计数和GC 与可达性分析相比,感觉引用计数是一种效率很好的回收算法。但是循环引用不容易处理,特别是java这种面向对象的开发形式。
关于实时性与垃圾回收的思考
最新推荐文章于 2024-04-29 19:10:05 发布