Windows Phone / Xbox和Android都不支持分代垃圾回收。这让很多程序员感到沮丧。似乎有合理的工程原因,但我无法弄清楚。
当前的电话比2001年运行带有世代GC的.NET 1.1的台式机/笔记本电脑具有更多的内存和更好的CPU,我无法想到ARM处理器在世代GC上比x86差的任何原因。在电话和控制台上对多任务的需求也减少了,因此有相对更多的可用堆空间。
那有什么呢?
编辑:需要澄清的几点:
- 这些平台专门为应用程序使用垃圾收集,因此我的问题不是关于为什么不支持GC的问题;我的问题是关于为何不进行分代垃圾回收。
- 人们对缺乏世代GC感到沮丧的原因是非世代GC效率极低。(这意味着电池寿命不是原因。)
- 我确实认为,缺乏世代GC支持是有诚实的技术原因。这不是一个反问。