Java 是从eden空间或eden+指定的新对象;从幸存者空间?

Java 是从eden空间或eden+指定的新对象;从幸存者空间?,java,memory-management,heap,Java,Memory Management,Heap,新的目标是从伊甸园空间分配的还是从幸存者空间分配的? 幸存者空间中的可用空间是否也可用于分配给新对象 编辑: 考虑一下情况: 假设伊甸园空间已满且幸存者空间占用率较低,那么在这种情况下,如果创建了新对象(新对象小到足以容纳幸存者空间),那么是否会进行小规模收集或从幸存者空间分配新对象的空间?我相信伊甸园空间总是用于小对象,而且非常大的对象直接分配到旧空间中。如果在幸存者空间中分配了新的对象,它将有点挫败拥有单独空间的观点 有关更多详细信息,请参阅,包括: 大多数对象最初是分配的 在伊甸园。(如前

新的目标是从伊甸园空间分配的还是从幸存者空间分配的? 幸存者空间中的可用空间是否也可用于分配给新对象

编辑: 考虑一下情况:
假设伊甸园空间已满且幸存者空间占用率较低,那么在这种情况下,如果创建了新对象(新对象小到足以容纳幸存者空间),那么是否会进行小规模收集或从幸存者空间分配新对象的空间?

我相信伊甸园空间总是用于小对象,而且非常大的对象直接分配到旧空间中。如果在幸存者空间中分配了新的对象,它将有点挫败拥有单独空间的观点

有关更多详细信息,请参阅,包括:

大多数对象最初是分配的 在伊甸园。(如前所述,一些大型 对象可以直接在中分配 老一代。)


假设伊甸园空间已满,来自幸存者空间的占用率较低,那么在这种情况下,如果创建了新对象(新对象小到足以容纳来自幸存者空间的对象),那么会发生次要收集,还是会从来自幸存者空间分配新对象的空间?@user275131:我相信会发生次要收集。这样说:我没有看到任何迹象表明情况并非如此。@Skeet你不认为如果发生小规模收集,那么我们将浪费fromSurvivor的空间,或者不利用它吗?@user275131:我怀疑不是,因为它使正常分配更简单,因此可能更快。这个想法是,小规模的收集非常快。我可能错了,但我只是继续写文档。收集器的性能非常复杂(请记住多线程分配)-老实说,我没有资格详细讨论它。如果我是对的,我肯定他们考虑过直接分配到“from”空间。