Я пытаюсь понять, как работает сборщик мусора. Я ясно на следующие моменты:Когда JVM запускает сборку мусора?
- JVM будет вызывать незначительные GC, когда не выделять объекты на молодого поколения.
- пункт Список
JVM будет вызывать полный GC (как второстепенный + основной GC), когда куча полна.
Но, как насчет объектов молодого поколения и старого поколения, которые больше не ссылаются, имеют право на GC, но нет GC-сгенерированного (то есть куча молодого/старого поколения не заполнена, поэтому GC не происходит)
Означает ли это, что эти объекты останутся в области кучи молодого/старого поколения до тех пор, пока не произойдет GC?
Мои материалы для чтения
https://plumbr.eu/blog/garbage-collection/minor-gc-vs-major-gc-vs-full-gc
http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/
https://www.infoq.com/articles/Java_Garbage_Collection_Distilled
Какой алгоритм GC вы имеете в виду? Каждый алгоритм имеет свой собственный порог для запуска основного GC. https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/ – kosa
Предположим, если это параметр по умолчанию? Параллельный GC? – youcanlearnanything
Это может помочь: https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#parallel_collector_ergonomics – kosa