最近在翻译一本 Android 开发相关的书,遇到一处关于 GC 的地方不太理解,希望有人能解答一下困惑。
原文:
The Dalvik Virtual Machine also includes some Java Virtual Machine (JVM) features, such as garbage collection (GC). There has been a lot of criticism through the GC because of its non-generational nature; it's famous for driving developers crazy.
我的翻译:
Dalvik 虚拟机也包含了一些 Java 虚拟机的特性,例如垃圾回收( GC )。垃圾回收由于它的 non-generational 特性而饱受批评,该特性以给开发者带来痛苦而闻名。
问题:对于“ non-generational ”该怎么理解呢?
我的理解是:
“ generational ”在 GC 中可以理解为对堆对象进行“分代”:年轻代,年老代。接着对于不同分代,采用不同的回收算法,以提高垃圾回收机制的效率。
那么“ non-generational ”是否可以理解为“非分代”,也就是不对堆内存进行分代,这样回收算法的效率必然较低。结合上下文,是否可以理解为:非分代,导致垃圾回收效率低下,给开发者带来痛苦呢?
但据我所知现在的 Java 虚拟机貌似都有进行分代,是不是之前的虚拟机没有进行分代呢?
原文:
The Dalvik Virtual Machine also includes some Java Virtual Machine (JVM) features, such as garbage collection (GC). There has been a lot of criticism through the GC because of its non-generational nature; it's famous for driving developers crazy.
我的翻译:
Dalvik 虚拟机也包含了一些 Java 虚拟机的特性,例如垃圾回收( GC )。垃圾回收由于它的 non-generational 特性而饱受批评,该特性以给开发者带来痛苦而闻名。
问题:对于“ non-generational ”该怎么理解呢?
我的理解是:
“ generational ”在 GC 中可以理解为对堆对象进行“分代”:年轻代,年老代。接着对于不同分代,采用不同的回收算法,以提高垃圾回收机制的效率。
那么“ non-generational ”是否可以理解为“非分代”,也就是不对堆内存进行分代,这样回收算法的效率必然较低。结合上下文,是否可以理解为:非分代,导致垃圾回收效率低下,给开发者带来痛苦呢?
但据我所知现在的 Java 虚拟机貌似都有进行分代,是不是之前的虚拟机没有进行分代呢?
