我正在阅读有关Java GC的文档。
一个内存空间,无论是Old还是Permanent,如果满了,并且需要为新对象或类腾出空间,它就需要向其最大大小扩展,如果相关参数具有不同的值。换句话说,如果‐Xms和‐Xmx具有不同的值,并且如果需要将Old的大小从‐Xms增加到‐Xmx以容纳更多对象,则会进行FullGC。同样,如果‐XX:PermSize和‐XX:MaxPermSize具有不同的值,并且需要将Permanent Space增加到‐XX:MaxPermSize以容纳新的Java类,则会进行FullGC。通过始终将‐Xms和‐Xmx以及‐XX:PermSize和‐XX:MaxPermSize设置为相同的值可以避免这种情况。
想知道为什么在这种情况下要调用FullGC?它有什么用处吗?
一个内存空间,无论是Old还是Permanent,如果满了,并且需要为新对象或类腾出空间,它就需要向其最大大小扩展,如果相关参数具有不同的值。换句话说,如果‐Xms和‐Xmx具有不同的值,并且如果需要将Old的大小从‐Xms增加到‐Xmx以容纳更多对象,则会进行FullGC。同样,如果‐XX:PermSize和‐XX:MaxPermSize具有不同的值,并且需要将Permanent Space增加到‐XX:MaxPermSize以容纳新的Java类,则会进行FullGC。通过始终将‐Xms和‐Xmx以及‐XX:PermSize和‐XX:MaxPermSize设置为相同的值可以避免这种情况。
想知道为什么在这种情况下要调用FullGC?它有什么用处吗?