ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

ИзбавляСмся ΠΎΡ‚ мусора Π² Java

ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сборка мусора, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π° ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ любого прилоТСния трСбуСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ. Однако ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ Π΅Π΅ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ ΠΎΡ‚ старых Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ мСсто для Π½ΠΎΠ²Ρ‹Ρ….

ΠšΡ‚ΠΎ занимаСтся этой очисткой? Как ΠΈ ΠΊΠΎΠ³Π΄Π° очищаСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ? Как выглядит структура памяти? Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ с этим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° памяти Java

ΠŸΠ°ΠΌΡΡ‚ΡŒ Π² Java состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… областСй:

ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусораБтруктура памяти Java

Native Memory β€” вся доступная систСмная ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Stack (стСк) β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° выдСляСтся свой стСк.

Metaspace (ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅) β€” Π² этой памяти хранятся ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ классов ΠΈ статичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ пространство Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΠ±Ρ‰ΠΈΠΌΠΈ для всСх. Π’Π°ΠΊ ΠΊΠ°ΠΊ metaspace являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ native memory, Ρ‚ΠΎ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΏΡ€Π΅Π΄Π΅Π» объСма памяти, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для metaspace, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°Π³Π° MaxMetaspaceSize.

PermGen (Permanent Generation, постоянноС ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅) присутствовало Π΄ΠΎ Java 7. Начиная с Java 8 Π΅ΠΌΡƒ Π½Π° смСну ΠΏΡ€ΠΈΡˆΠ»Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Metaspace.

CodeCache (кэш ΠΊΠΎΠ΄Π°) β€” JIT-компилятор ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ часто исполняСмый ΠΊΠΎΠ΄, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ для Π±ΠΎΠ»Π΅Π΅ быстрого выполнСния. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Ρ‡Π°ΡΡ‚ΡŒ native memory.

Π‘Π±ΠΎΡ€ΠΊΠ° мусора: Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «ΠΌΡƒΡΠΎΡ€»? ΠœΡƒΡΠΎΡ€ΠΎΠΌ считаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнут ΠΏΠΎ ссылкС ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· памяти.

НапримСр, Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π½ΠΈΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ fruit2 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· памяти, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ ссылок.

ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика ΠΌΡƒΡΠΎΡ€Π°ΠœΡƒΡΠΎΡ€

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сборка мусора? Π‘Π±ΠΎΡ€ΠΊΠ° мусора β€” это процСсс автоматичСского управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. ОсвобоТдСниС памяти (ΠΏΡƒΡ‚Π΅ΠΌ очистки мусора) выполняСтся автоматичСски ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ JVM β€” сборщиком мусора (Garbage Collector, GC). Нам, ΠΊΠ°ΠΊ программистам, Π½Π΅Ρ‚ нСобходимости Π²ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² процСсс сборки мусора.

ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика ΠΌΡƒΡΠΎΡ€Π°Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Oracle.com

Π‘Π±ΠΎΡ€ΠΊΠ° мусора: процСсс

Для сборки мусора ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΠΌΠ΅Ρ‚ΠΎΠΊ (Mark & Sweep). Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… этапов:

Sweep (очистка). На этом шагС освобоТдаСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ, занятая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π½Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС.

Compact (ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅). ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²ΡˆΠΈΠ΅ очистку, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ памяти. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊΡƒΡ‡ΠΈ ΠΈ позволяСт ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ быстрСС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусораMark & Sweep GC

ПоколСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ поколСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²?

Для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ сборки мусора ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΡƒΡ‡ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ области. Π’ эти области ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡ… возраста (ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ).

Young Generation (ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅). Π—Π΄Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠžΠ±Π»Π°ΡΡ‚ΡŒ young generation Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Ρ‚Ρ€ΠΈ части Ρ€Π°Π·Π΄Π΅Π»Π°: Eden (Π­Π΄Π΅ΠΌ), S0 ΠΈ S1 (Survivor Space β€” ΠΎΠ±Π»Π°ΡΡ‚ΡŒ для Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΡ…).

Old Generation (староС ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅). Π—Π΄Π΅ΡΡŒ хранятся Π΄Π°Π²Π½ΠΎ ΠΆΠΈΠ²ΡƒΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика ΠΌΡƒΡΠΎΡ€Π°ΠŸΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ Π² ΠΊΡƒΡ‡Π΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Stop the World?

Когда запускаСтся этап mark, Ρ€Π°Π±ΠΎΡ‚Π° прилоТСния останавливаСтся. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ mark ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ возобновляСт свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π›ΡŽΠ±Π°Ρ сборка мусора β€” это «Stop the World».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³ΠΈΠΏΠΎΡ‚Π΅Π·Π° ΠΎ поколСниях?

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ этапов mark ΠΈ sweep ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ поколСния. Π“ΠΈΠΏΠΎΡ‚Π΅Π·Π° ΠΎ поколСниях Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΆΠΈΠ²ΡƒΡ‚ Π½Π΅Π΄ΠΎΠ»Π³ΠΎ.

Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ‹ΠΆΠΈΠ²Π°Π΅Ρ‚, Ρ‚ΠΎ ΠΎΠ½, скорСС всСго, Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‡Π½ΠΎ.

Π­Ρ‚Π°ΠΏΡ‹ mark ΠΈ sweep Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ большом количСствС мусора. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ быстрСС, Ссли анализируСмая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ нСбольшая ΠΈ Π² Π½Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сборки мусора, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ поколСния, выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусораБборка мусора поколСниями

    НовыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² области Eden. ΠžΠ±Π»Π°ΡΡ‚ΠΈ Survivor (S0, S1) Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ пустыС.

    Когда ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Eden заполняСтся, происходит минорная сборка мусора (Minor GC). Minor GC β€” это процСсс, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ mark ΠΈ sweep Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ для young generation (ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ поколСния).

    ПослС Minor GC ΠΆΠΈΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· областСй Survivor (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, S0). ΠœΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ.

    По ΠΌΠ΅Ρ€Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния пространство Eden заполняСтся Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΌ Minor GC области young generation ΠΈ S0 ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ΡΡ. На этот Ρ€Π°Π· Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ S1, ΠΈ ΠΈΡ… возраст увСличиваСтся (ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ»ΠΈ сборку мусора).

    ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Minor GC процСсс повторяСтся. Однако Π½Π° этот Ρ€Π°Π· области Survivor ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами. Π–ΠΈΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² S0 ΠΈ Ρƒ Π½ΠΈΡ… увСличиваСтся возраст. ΠžΠ±Π»Π°ΡΡ‚ΠΈ Eden ΠΈ S1 ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ΡΡ.

    ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ областями Survivor ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π· (ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Minor GC) ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Ρ‚Π°ΠΌ достаточно мСста. Π—Π°Ρ‚Π΅ΠΌ эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Old.

    Major GC. ΠŸΡ€ΠΈ Major GC этапы mark ΠΈ sweep Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ для Old Generation. Major GC Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Minor GC, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ староС ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π² основном состоит ΠΈΠ· ΠΆΠΈΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ

    Minor GC происходит Π² мСньшСй части ΠΊΡƒΡ‡ΠΈ (

    2/3 ΠΎΡ‚ ΠΊΡƒΡ‡ΠΈ). Π­Ρ‚Π°ΠΏ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ эффСктивСн, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ нСбольшая ΠΈ состоит Π² основном ΠΈΠ· ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    НСдостатки использования ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ

    Π’ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· пространств Survivor (S0 ΠΈΠ»ΠΈ S1) пустоС ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

    Π‘Π±ΠΎΡ€ΠΊΠ° мусора: Ρ„Π»Π°Π³ΠΈ

    Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для настройки процСсса сборки мусора.

    Π€Π»Π°Π³

    ОписаниС

    ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΡƒΡ‡ΠΈ

    ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΡƒΡ‡Π°

    ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Old Generation ΠΊ Young Generation

    ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Eden ΠΊ Survivor

    Возраст ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ пСрСмСщаСтся ΠΈΠ· области Survivor Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Old Generation

    Π’ΠΈΠΏΡ‹ сборщиков мусора

    Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора

    ОписаниС

    ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

    Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

    Π€Π»Π°Π³ΠΈ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ.

    Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ, Ρ‚.ΠΊ. Π½Π΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° взаимодСйствиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

    Π Π°Π±ΠΎΡ‚Π° с нСбольшими Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

    ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ускоряСт сборку мусора.

    Π’ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅ пиковая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

    Допустимы ΠΏΠ°ΡƒΠ·Ρ‹ ΠΏΡ€ΠΈ GC Π² ΠΎΠ΄Π½Ρƒ сСкунду ΠΈ Π±ΠΎΠ»Π΅Π΅.

    Π Π°Π±ΠΎΡ‚Π° со срСдними ΠΈ большими Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

    Для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° многопроцСссорном ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ.

    ВыполняСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ прилоТСния.

    ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π½Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… систСмах, Ρ‚Π°ΠΊ ΠΈ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… с большим количСством процСссоров ΠΈ большим количСством памяти.

    Когда врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° Π²Π°ΠΆΠ½Π΅Π΅ пропускной способности.

    ΠŸΠ°ΡƒΠ·Ρ‹ GC Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ мСньшС ΠΎΠ΄Π½ΠΎΠΉ сСкунды.

    ВыполняСт всю Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ прилоТСния.

    Π’ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅ врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°.

    Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΈ мусора Π² Java

    Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° GC

    Π§Ρ‚ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ?

    Частота запуска сборки мусора. Π’Π°ΠΊ ΠΊΠ°ΠΊ GC Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ «stop the world», поэтому Ρ‡Π΅ΠΌ врСмя сборки мусора мСньшС, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅.

    Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° сборки мусора.

    Как ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ сборщик мусора?

    Для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ инструмСнты:

    Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ логирования событий сборщика мусора Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ JVM:

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

    Π‘Π±ΠΎΡ€ΠΊΠ° мусора Π² Java: Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² JVM

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сборка мусора Π² Java?

    Π‘Π±ΠΎΡ€ΠΊΠ° мусора β€” это процСсс восстановлСния Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ памяти срСды выполнСния ΠΏΡƒΡ‚Π΅ΠΌ уничтоТСния Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    Π’ Ρ‚Π°ΠΊΠΈΡ… языках, ΠΊΠ°ΠΊ C ΠΈ C++, программист ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π·Π° созданиС, Ρ‚Π°ΠΊ ΠΈ Π·Π° ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Иногда программист ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ бСсполСзныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΈ выдСлСнная ΠΈΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ освобоТдаСтся. РасходуСтся всС большС ΠΈ большС систСмной памяти, ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ½Π° большС Π½Π΅ выдСляСтся. Π’Π°ΠΊΠΈΠ΅ прилоТСния ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ β€œΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти”.

    Π‘Π±ΠΎΡ€ΠΊΠ° мусора Π² Java β€” это процСсс, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Java автоматичСски ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Java (JVM).

    Когда Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° JVM, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΊΡƒΡ‡Π΅, которая прСдставляСт собой Ρ‡Π°ΡΡ‚ΡŒ памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ для Π½ΠΈΡ….

    Пока Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π² Π½Π΅ΠΌ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°ΡŽΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΡƒΡ‡ΠΈ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ эти Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ удаляСт ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

    Как Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Java

    Основная Ρ†Π΅Π»ΡŒ сборки мусора β€” ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΡƒΡ‡ΠΈ, ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ содСрТат ссылку. Когда Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅Ρ‚ ссылки, прСдполагаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠ΅Ρ€Ρ‚Π² ΠΈ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ°ΠΌΡΡ‚ΡŒ, занятая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ восстановлСна.

    Π•ΡΡ‚ΡŒ нСсколько способов ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ Π½Π° сборку мусора. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

    Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ссылку Π½ΡƒΠ»Π΅Π²ΠΎΠΉ

    ΠΠ°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ссылку Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

    Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сборка мусора Π² Java?

    Π‘Π±ΠΎΡ€ΠΊΠ° мусора Π² Java β€” автоматичСский процСсс. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ.

    Π‘Π±ΠΎΡ€ΠΊΠ° мусора производится Π² JVM. КаТдая JVM ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ сборки мусора. Однако сборщик Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ стандартной спСцификации JVM для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π² памяти ΠΊΡƒΡ‡ΠΈ, для ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ нСдостиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈΡ… уничтоТСния Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅.

    ΠšΠ°ΠΊΠΎΠ²Ρ‹ источники для сборки мусора Π² Java?

    Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΈ мусора Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ ΠΊΠΎΡ€Π½Π΅ΠΉ сбора мусора (GC Roots) для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΆΠΈΠ²Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΡ€Π½Π΅ΠΉ.

    Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора просматриваСт вСсь Π³Ρ€Π°Ρ„ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти, начиная с этих ΠΊΠΎΡ€Π½Π΅ΠΉ ΠΈ слСдуя ссылкам Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Π­Ρ‚Π°ΠΏΡ‹ сборки мусора Π² Java

    Бтандартная рСализация сборки мусора Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Ρ€ΠΈ этапа.

    ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°ΠΊ ΠΆΠΈΠ²Ρ‹Ρ…

    На этом этапС GC (сборщик мусора) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ всС ΠΆΠΈΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² памяти ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    Когда GC посСщаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ доступный ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΆΠΈΠ²ΠΎΠΉ. ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, нСдоступныС ΠΈΠ· ΠΊΠΎΡ€Π½Π΅ΠΉ GC, Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρ‹ Π½Π° сбор мусора.

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Зачистка ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

    ПослС Ρ„Π°Π·Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ пространство памяти занято Π»ΠΈΠ±ΠΎ ΠΆΠΈΠ²Ρ‹ΠΌΠΈ (посСщСнными), Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹ΠΌΠΈ (Π½Π΅ посСщСнными) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π€Π°Π·Π° зачистки освобоТдаСт Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат эти ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ΅ располоТСниС ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти

    ΠœΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π²ΠΎ врСмя ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ„Π°Π·Ρ‹, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ рядом Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ рискуСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ пространство памяти.

    ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠ»ΠΎΡ‚Π½ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° сборщик мусора ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠžΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΡƒΡ‡ΠΈ.

    ΠŸΡ€ΠΎΡ†Π΅ΡΡ уплотнСния ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сбор мусора ΠΏΠΎ поколСниям?

    Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΈ мусора Π² Java Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ сбора мусора ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ, которая классифицируСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ возрасту.

    ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΠ»ΠΎΡ‚Π½ΡΡ‚ΡŒ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² JVM нСэффСктивна. По ΠΌΠ΅Ρ€Π΅ выдСлСния всС большСго количСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΡ… список растСт, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сбора мусора. ЭмпиричСский Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Java Π½Π΅Π΄ΠΎΠ»Π³ΠΎΠ²Π΅Ρ‡Π½Ρ‹.

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ось Y ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ количСство Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ², Π° ось X β€” количСство Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ² с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Как Π²ΠΈΠ΄Π½ΠΎ, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ всС мСньшС ΠΈ мСньшС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

    Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΆΠΈΠ²ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ, Ρ‡Ρ‚ΠΎ соотвСтствуСт Π±ΠΎΠ»Π΅Π΅ высоким значСниям Π² Π»Π΅Π²ΠΎΠΉ части Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Java классифицируСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ поколСниям ΠΈ выполняСт сборку мусора Π² соотвСтствии с Π½ΠΈΠΌΠΈ.

    ΠžΠ±Π»Π°ΡΡ‚ΡŒ памяти ΠΊΡƒΡ‡ΠΈ Π² JVM Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Ρ‚Ρ€ΠΈ сСкции:

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    МолодоС поколСниС

    Π’Π½ΠΎΠ²ΡŒ созданныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ Π² ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ. МолодоС ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π΄Π°Π»Π΅Π΅ подраздСляСтся Π½Π° Π΄Π²Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.

    ΠŸΡ€ΠΎΡ†Π΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² мусор ΠΈΠ· ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ поколСния, называСтся ΠΌΠ°Π»Ρ‹ΠΌ событиСм сборки мусора.

    Когда пространство Π­Π΄Π΅ΠΌΠ° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, выполняСтся малая сборка мусора. ВсС ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ, Π° всС ΠΆΠΈΠ²Ρ‹Π΅ β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ Π΄Π²ΡƒΡ… пространств. Малая GC Ρ‚Π°ΠΊΠΆΠ΅ провСряСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² пространствС Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΡ… ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΡ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅) пространство Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΡ….

    Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

    Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² любоС врСмя ΠΎΠ΄Π½ΠΎ ΠΈΠ· пространств для Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΡ… всСгда пусто. Когда Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€ΠΎΠ³Π° пСрСмСщСния ΠΏΠΎ пространствам Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΡ…, ΠΎΠ½ΠΈ пСрСходят Π² ΡΡ‚Π°Ρ€ΡˆΠ΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅.

    Π‘Ρ‚Π°Ρ€ΡˆΠ΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅

    ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹-Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ пСрСходят ΠΈΠ· ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ поколСния Π² ΡΡ‚Π°Ρ€ΡˆΠ΅Π΅. Оно Ρ‚Π°ΠΊΠΆΠ΅ извСстно ΠΊΠ°ΠΊ ΡˆΡ‚Π°Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΠΈ содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π² пространствах Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΡ….

    ΠŸΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ срока слуТбы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° опрСдСляСт, сколько Ρ†ΠΈΠΊΠ»ΠΎΠ² сборки мусора ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ Π² ΡΡ‚Π°Ρ€ΡˆΠ΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅.

    ΠŸΡ€ΠΎΡ†Π΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² мусор ΠΈΠ· ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ поколСния, называСтся основным событиСм сборки мусора.

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Java задСйствуСт сборку мусора ΠΏΠΎ поколСниям, Ρ‚ΠΎ Ρ‡Π΅ΠΌ большС событий сборки мусора ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚Π΅ΠΌ дальшС ΠΎΠ½ продвигаСтся Π² ΠΊΡƒΡ‡Π΅. Он Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π² ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ, Ссли ΠΏΡ€ΠΎΠΆΠΈΠ²Π΅Ρ‚ достаточно Π΄ΠΎΠ»Π³ΠΎ.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ пространствами ΠΈ поколСниями, рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

    Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создаСтся, ΠΎΠ½ сначала помСщаСтся Π² пространство Π­Π΄Π΅ΠΌΠ° ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ поколСния. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ происходит малая сборка мусора, ΠΆΠΈΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· Π­Π΄Π΅ΠΌΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² пространство FromSpace. Когда происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ малая сборка мусора, ΠΆΠΈΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠ°ΠΊ ΠΈΠ· Π­Π΄Π΅ΠΌΠ°, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· пространства ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² пространство ToSpace.

    Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» продолТаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ всС Π΅Ρ‰Π΅ β€œΠ² ΡΡ‚Ρ€ΠΎΡŽβ€ послС этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ†ΠΈΠΊΠ» сборки мусора пСрСмСстит Π΅Π³ΠΎ Π² пространство ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ поколСния.

    ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅

    ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, хранятся Π² постоянном ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ. JVM заполняСт Π΅Π³ΠΎ Π²ΠΎ врСмя выполнСния Π½Π° основС классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠšΠ»Π°ΡΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· постоянного поколСния Π² мусор.

    ΠœΠ΅Ρ‚Π°-пространство

    Начиная с Java 8, Π½Π° смСну пространству постоянного поколСния (PermGen) ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ пространство памяти MetaSpace. РСализация отличаСтся ΠΎΡ‚ PermGen β€” это пространство ΠΊΡƒΡ‡ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ измСняСтся автоматичСски.

    Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, которая Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° пространства PermGen Π² ΠΊΡƒΡ‡Π΅. ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°-пространства ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ собрана ΠΊΠ°ΠΊ мусор, ΠΈ классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΎΡ‡ΠΈΡ‰Π΅Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Ρ‚Π°-пространство достигнСт максимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

    Π’ΠΈΠΏΡ‹ сборщиков мусора Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Java

    Π‘Π±ΠΎΡ€ΠΊΠ° мусора ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ эффСктивности памяти Π² Java, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π΅Π· ссылок ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· памяти ΠΊΡƒΡ‡ΠΈ ΠΈ освобоТдаСтся мСсто для Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    Π£ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java Π΅ΡΡ‚ΡŒ восСмь Ρ‚ΠΈΠΏΠΎΠ² сборщиков мусора. Рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π² дСталях.

    Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ GC

    Π­Ρ‚ΠΎ самая простая рСализация GC. Она ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… срСдах. ВсС события сборки мусора Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Π£ΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅ выполняСтся послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сборки мусора.

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Запуск сборщика ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ β€œΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ мира”, ΠΊΠΎΠ³Π΄Π° всС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ приостанавливаСт Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° врСмя сборки мусора всС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ замораТиваСтся, Π½Π΅ слСдуСт ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, Ссли трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±Ρ‹Π»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

    ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ GC

    ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ сборщик мусора ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ со срСдними ΠΈ большими Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° многопроцСссорном ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. Π­Ρ‚ΠΎ рСализация GC ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ извСстна ΠΊΠ°ΠΊ сборщик пропускной способности.

    НСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ для ΠΌΠ°Π»ΠΎΠΉ сборки мусора Π² ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ. ЕдинствСнный ΠΏΠΎΡ‚ΠΎΠΊ занят основной сборкой мусора Π² ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ.

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Запуск ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ GC Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ β€œΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΡƒ мира”, ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ зависаСт. Π’Π°ΠΊΠΎΠ΅ большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ срСды, ΠΊΠΎΠ³Π΄Π° трСбуСтся Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Ρ‡ ΠΈ допустимы Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΡƒΠ·Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ задания.

    Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ GC

    Π­Ρ‚ΠΎ вСрсия Parallel GC ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, начиная с Java 7u4. Π­Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ GC, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΊΠ°ΠΊ для ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ поколСния, Ρ‚Π°ΠΊ ΠΈ для ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ поколСния.

    CMS (ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° ΠΈ зачистка) GC

    Π’Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ сборщик Π½ΠΈΠ·ΠΊΠΈΡ… ΠΏΠ°ΡƒΠ·. Для ΠΌΠ°Π»ΠΎΠΉ сборки мусора Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΈ происходит это Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠ°ΠΊ Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ сборщикС. Основная сборка мусора ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Π°, ΠΊΠ°ΠΊ ΠΈ Π² старом ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ GC, Π½ΠΎ CMS Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с процСссами ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ события β€œΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ мира”.

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Из-Π·Π° этого сборщик CMS потрСбляСт большС рСсурсов процСссора, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сборщики. Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ большС ЦП для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚ΠΎ CMS ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‡Π΅ΠΌ простой ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ сборщик. Π’ CMS GC Π½Π΅ выполняСтся ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅.

    G1 (ΠœΡƒΡΠΎΡ€ β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ) GC

    G1GC Π±Ρ‹Π» Π·Π°Π΄ΡƒΠΌΠ°Π½ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° CMS ΠΈ разрабатывался для ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΡƒΡ‡ΠΈ (Π±ΠΎΠ»Π΅Π΅ 4 Π“Π‘). Он ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»Π΅Π½ ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π΅Π½, ΠΊΠ°ΠΊ CMS, Π½ΠΎ β€œΠΏΠΎΠ΄ капотом” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ старыС сборщики мусора.

    Π₯отя G1 Ρ‚Π°ΠΊΠΆΠ΅ дСйствуСт ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ, Π² Π½Π΅ΠΌ Π½Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… пространств для ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. ВмСсто этого ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ прСдставляСт собой Π½Π°Π±ΠΎΡ€ областСй, Ρ‡Ρ‚ΠΎ позволяСт Π³ΠΈΠ±ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ поколСния.

    G1 Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ ΠΊΡƒΡ‡Ρƒ Π½Π° Π½Π°Π±ΠΎΡ€ областСй ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (ΠΎΡ‚ 1 ΠœΠ‘ Π΄ΠΎ 32 ΠœΠ‘ β€” Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΡƒΡ‡ΠΈ) ΠΈ сканируСт ΠΈΡ… Π² нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ старой, Ρ‚Π°ΠΊ ΠΈ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ.

    ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ этапа Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ G1 Π·Π½Π°Π΅Ρ‚, Π² ΠΊΠ°ΠΊΠΈΡ… областях содСрТится большС всСго мусора. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ заинтСрСсован Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°ΡƒΠ·, G1 ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько областСй. Если врСмя ΠΏΠ°ΡƒΠ·Ρ‹ Π½Π΅Π²Π°ΠΆΠ½ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π΅Π» этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ установлСн высокий, G1 ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ числу областСй.

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ G1 GC ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹ с наибольшим количСством мусора ΠΈ сначала выполняСт сбор мусора Π² Π½ΠΈΡ…, ΠΎΠ½ ΠΈ называСтся: β€œΠœΡƒΡΠΎΡ€ β€” пСрвым”.

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    Помимо областСй Π­Π΄Π΅ΠΌΠ°, Π’Ρ‹ΠΆΠΈΠ²ΡˆΠΈΡ… ΠΈ Π‘Ρ‚Π°Ρ€ΠΎΠΉ памяти, Π² G1GC ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΅Ρ‰Π΅ Π΄Π²Π° Ρ‚ΠΈΠΏΠ°.

    Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Эпсилон

    Epsilon β€” сборщик мусора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ JDK 11. Он ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти, Π½ΠΎ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° восстановлСния памяти. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ доступная ΠΊΡƒΡ‡Π° исчСрпана, JVM Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

    Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊ свСрхвысокой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅, Π³Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°ΡŽΡ‚ объСм памяти прилоТСния ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΠΎΠ±ΠΈΠ²Π°ΡŽΡ‚ΡΡ ситуации (ΠΏΠΎΡ‡Ρ‚ΠΈ) ΠΏΠΎΠ»Π½ΠΎΠΉ свободы ΠΎΡ‚ мусора. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Epsilon GC Π½Π΅ рСкомСндуСтся.

    Π¨Π΅Π½Π°Π½Π΄ΠΎΠ°

    Shenandoah β€” Π½ΠΎΠ²Ρ‹ΠΉ GC, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ JDK 12. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ прСимущСство Shenandoah ΠΏΠ΅Ρ€Π΅Π΄ G1 состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»Π° сборки мусора выполняСтся ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. G1 ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π°ΠΊΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ области ΠΊΡƒΡ‡ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ приостановлСно, Π° Shenandoah ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

    Shenandoah ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΠΈΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ мусор ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ сразу послС обнаруТСния свободной памяти. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС это происходит ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π±Π΅Π· приостановки Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, Ρ‚ΠΎ Shenandoah Π±ΠΎΠ»Π΅Π΅ интСнсивно Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ процСссор.

    ZGC β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ GC, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ JDK 11 ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π² JDK 12. Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (ΠΏΠ°ΡƒΠ·Ρ‹ Π² ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ 10 мс) ΠΈ/ΠΈΠ»ΠΈ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΡƒΡ‡Ρƒ (нСсколько Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚).

    ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ ZGC β€” низкая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ простота Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. Для этого ZGC позволяСт Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠΎΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ сбору мусора. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ZGC освобоТдаСт Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму.

    Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ZGC привносит Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ GCS, обСспСчивая Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠ΅ врСмя ΠΏΠ°ΡƒΠ·Ρ‹ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… 2 мс).

    ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ссылки ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзусловно достиТимыми для сборщика мусора

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΊΠ°ΠΊ Shenandoah, Ρ‚Π°ΠΊ ΠΈ ZGC планируСтся вывСсти ΠΈΠ· ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ стадии Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ ΠΏΡ€ΠΈ выпускС JDK 15.

    Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ сборщик мусора

    Если Ρƒ вашСго прилоТСния Π½Π΅Ρ‚ строгих Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π²Π°ΠΌ стоит просто Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ сборщика самой JVM.

    Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΡƒΡ‡ΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Если ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ соотвСтствуСт оТиданиям, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сборщик Π² соотвСтствии с трСбованиями вашСго прилоТСния.

    ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° сборки мусора

    Π£ сборки мусора Π² Java мноТСство прСимущСств.

    ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, это ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄. НС Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ памяти ΠΈ Ρ†ΠΈΠΊΠ»Π°Ρ… высвобоТдСния. Π’Ρ‹ просто ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΠΎΠ΄Π΅, ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π», Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ автоматичСски восстановится.

    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π° языках Π±Π΅Π· сборки мусора (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C ΠΈ C++), приходится Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Ρƒ сСбя Π² ΠΊΠΎΠ΄Π΅.

    Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ памяти Java, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сборщик мусора удаляСт ΠΈΠ· памяти ΠΊΡƒΡ‡ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π΅Π· ссылок. Π­Ρ‚ΠΎ освобоТдаСт ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΡƒΡ‡ΠΈ для размСщСния Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

    НСкоторыС программисты Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π·Π° Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ вмСсто сборки мусора, Π½ΠΎ сборка мусора β€” ΡƒΠΆΠ΅ стандартный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… популярных языков программирования.

    Для сцСнариСв, ΠΊΠΎΠ³Π΄Π° сборщик мусора Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Java ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² настройки, ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΡ… ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ GC.

    Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ сбору мусора

    Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Ρ€ΡƒΡ‡Π½Ρ‹Ρ… Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²

    Помимо основных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² сборки мусора, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ этого процСсса Π² Java β€” Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΠΎ врСмя выполнСния ΠΎΠ½Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚.

    Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² System.gc() ΠΈΠ»ΠΈ Runtime.gc() ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄ подсказку для запуска сборщика мусора, Π½ΠΎ это Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ запустится.

    ΠŸΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ инструмСнтами для Π°Π½Π°Π»ΠΈΠ·Π°

    Если Ρƒ вас нСдостаточно памяти для запуска прилоТСния, Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с замСдлСниями, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ сбора мусора, событиями β€œΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ мира” ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅, ошибками ΠΈΠ·-Π·Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΡƒΡ‡Π° слишком ΠΌΠ°Π»Π°, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ΡŒ ΠΊ ΠΏΠΎΠΌΠΎΡ‰ΠΈ инструмСнта ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ jstat ΠΈΠ»ΠΈ Java Flight Recorder, ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, растСт Π»ΠΈ использованиС ΠΊΡƒΡ‡ΠΈ бСсконСчно, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΊΠΎΠ΄Π΅.

    ΠžΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ настройкам ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

    Если Ρƒ вас нСбольшоС Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π°ΠΌ, скорСС всСго, Π½Π΅ понадобится Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ сборку мусора. Настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Π²Π°ΠΌ послуТат.

    ΠŸΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Ρ„Π»Π°Π³Π°ΠΌΠΈ JVM для настройки

    Π›ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ настройкС сборки мусора Π² Java β€” установка JVM-Ρ„Π»Π°Π³ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°Π³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ сборщик мусора (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Serial, G1 ΠΈ Ρ‚.Π΄.), Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΡƒΡ‡ΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΊΡƒΡ‡ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Молодого поколСния, Π‘Ρ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ поколСния) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

    Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ сборщик ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

    Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ Π² ΠΏΠ»Π°Π½Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк β€” Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ настраиваСмого прилоТСния. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ сборщик мусора эффСктивСн, Π½ΠΎ часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ события β€œΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ мира”, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ подходящим для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π³Π΄Π΅ допустимы Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΡƒΠ·Ρ‹.

    Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, сборщик мусора CMS ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ рСагирования.

    Π’Ρ‹Π²ΠΎΠ΄

    Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ обсудили сборку мусора Java, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π΅Π΅ Ρ‚ΠΈΠΏΡ‹.

    Для ΠΌΠ½ΠΎΠ³ΠΈΡ… простых Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ программисту Π½Π΅Ρ‚ нСобходимости ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ сборку мусора. Однако Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Java, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ происходит Π΄Π°Π½Π½Ρ‹ΠΉ процСсс.

    Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ популярный вопрос Π½Π° собСсСдованиях: ΠΊΠ°ΠΊ Π½Π° ΠΌΠΈΠ΄Π΄Π»-, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΡΠ΅Π½ΡŒΠΎΡ€-ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² бэкСнд-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *