Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ автоматичСского ΠΈ бСзопасного освобоТдСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ВлияниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° этот процСсс опосрСдованноС, прямого управлСния Π½Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Garbage collector (GC).

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

ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ устроСна ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² Java.

НСкоторыС языки Π²ΠΎΠ·Π»Π°Π³Π°ΡŽΡ‚ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C, C++, Rust. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ сам, Π² ΠΊΠΎΠ΄Π΅, Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ удалСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Если этого Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ памяти.

НаличиС GC Π² языкС ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅: Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ удобство, Π½ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ стСпСни тСряСтС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ.

Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСимущСства:

  • УскорСниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
  • Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти.

B ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ нСдостатки:

  • ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов.
  • Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти :)
  • StopTheWorld

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ GC

Π’Π°ΠΌ быстро, дСшСво ΠΈΠ»ΠΈ качСствСнно?

  • Throughput. ОбъСм Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов CPU, Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ GC.
  • ΠŸΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ. На ΠΊΠ°ΠΊΠΎΠ΅ врСмя прСрываСтся Ρ€Π°Π±ΠΎΡ‚Π° прилоТСния.
  • Footprint. ОбъСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти.

Π Π°Π±ΠΎΡ‚Π° GC

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎ Ρƒ GC Π΅ΡΡ‚ΡŒ всСго 2 Π·Π°Π΄Π°Ρ‡ΠΈ:

  • Найти мусор. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.
  • И ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ мусор. Π£Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° ΠΈΡ… мСстС ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π°Π»ΠΎΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅.

NOTE

Π’ процСссС своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ GC Π½Π΅ потрСбляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² Heap

Алгоритмы поиска мусора

Reference Counting

Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ подсчитываСт количСство ссылок Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Когда счСтчик ссылок достигаСт нуля, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ считаСтся нСдоступным.

Π•ΡΡ‚ΡŒ довольно ΠΌΠ½ΠΎΠ³ΠΎ ситуаций, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹ΠΉ способ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. НапримСр, цикличСский Π³Ρ€Π°Ρ„, Π³Π΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, Π½ΠΎ ΠΎΠ½ΠΈ всС ΡΠ²Π»ΡΡŽΡ‚ΡΡ мусором.

Tracing

ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ссылок. Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Он начинаСтся с ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ достиТимых, β€œΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ…β€ (GC Root), ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ отслСТиваСт всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, доступныС ΠΎΡ‚ этих ΠΊΠΎΡ€Π½Π΅ΠΉ.

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ Π² качСствС GC Root?

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ статичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Main классС ΠΈ main ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт main, статичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ссылки ΠΈΠ· JNI.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ сбору мусора

  • StopTheWorld
  • Copy Collector
  • Mark and Sweep
  • Mark and Compact
  • Generational Collection
  • Incremental Collection
  • Parallel Collection
  • Concurrent Collection

ΠŸΠΎΡ‚ΠΎΠΊΠΈ GC

Search thread

  • ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ занимаСтся поиском мусора ΠΈ ΠΏΠΎΠ΄Π°Π΅Ρ‚ сигнал для запуска сборки.
  • Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠ½ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

GC thread

  • ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ занимаСтся сборкой мусора.
  • Π’Π°ΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ.
  • Π˜ΠΌΠ΅Π΅Ρ‚ нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для старта.
  • ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ StopTheWorld

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ старта GC

Π“Π»Π°Π²Π½Ρ‹Π΅:

  • Allocation Failure. JVM ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ памяти Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΎ
  • GC Locker. ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄Π°Π» сигнал Π½Π° ΡƒΠ±ΠΎΡ€ΠΊΡƒ.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅:

  • Adaptive Size Ergonomics.
  • Allocation Profiler. ΠŸΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ влияниС Π½Π° сборку мусора искаТая ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ.
  • Heap Inspection.
  • Heap Dump.
  • No GC. Если сборка мусора Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»Π° давольно Π΄Π°Π²Π½ΠΎ.
  • Last Ditch Collection.
  • Perm Generation Ful.
  • Meradata GC Threshold.

Minor Collection

Если количСство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Eden Space памяти ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ объСм, Ρ‚ΠΎ GC ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ (minor) сборку мусора. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΠ»Π½ΠΎΠΉ сборкой мусора, Π΄Π°Π½Π½Ρ‹ΠΉ процСсс Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ поколСния, - ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π΅Π· ссылок ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ, Π° Π²Ρ‹ΠΆΠΈΠ²ΡˆΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Survivor Space.

Full Collection

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ minor сборок ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ вСсь Heap ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΈ

  • Epsilon GC. НС собираСт мусор :)
  • Serial GC. ΠœΠΎΡ€Π°Π»ΡŒΠ½ΠΎ устарСл, Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ для ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Parallel GC. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаСв.
  • Parallel Compacting Collector.
  • Concurrent Mark Sweep. ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ врСмя простоя Π² прилоТСниях с Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Garbage First. Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов памяти Π² сочСтании с нСбольшими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.
  • Ultra-low latency
    • ZGC
    • Shenandoah GC

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ»ΠΈ Serial ΠΈΠ»ΠΈ Parallel GC.

Как ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° сборку?

  • ΠŸΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ особСнностСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ GC. НСблагодарный Ρ‚Ρ€ΡƒΠ΄.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ΠΈ JVM

Команда System.gc() носит Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ JVM Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ GC, Π½ΠΎ JVM ΠΌΠΎΠΆΠ΅Ρ‚ этого ΠΈ Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ€Π°Π±ΠΎΡ‚Ρ‹ GC

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ VM

  • -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
  • -Xlog:gc ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ врСмя StopTheWorld.
    • Π‘Ρ‚ΠΎΠΈΡ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ Safe Point. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ врСмя Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов.
  • -Xlog:safepoint. ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ врСмя с Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌΠΈ расходами.
  • -Xloggc:<file>
  • -XX:+PrintGcDateStamps
  • -XX:+PrintHeapAtGC
  • -XX:+PrintTenuringDistribution

Анализ диагностичСского Π²Ρ‹Π²ΠΎΠ΄Π°:

  • PrintGCStats
  • GChisto
  • VisualVM / VisualGC

ΠœΠ΅Ρ‚Π° информация

ΠžΠ±Π»Π°ΡΡ‚ΡŒ:: 00 Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°
Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ:: Устройство Java
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ::
Автор::
Π‘ΠΎΠ·Π΄Π°Π½Π°:: 2023-11-06

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

  1. Π‘Π±ΠΎΡ€ΠΊΠ° мусора Π² Java.
    1. Π’ ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΎ сборкС мусора.
  2. АлСксСй Π¨ΠΈΠΏΠΈΠ»Ρ‘Π² β€” Shenandoah.
    1. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказаны Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ копирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  3. Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ГусСв Π’Π»Π°Π΄
  4. Π•ΡΡ‚ΡŒ какая-Ρ‚ΠΎ ΠΊΠ½ΠΈΠ³Π° GC Handbook

Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ

  • Concurrent Collection
  • Concurrent Mark Sweep
  • Copy Collector
  • Epsilon GC
  • Garbage First
  • Generational Collection
  • Incremental Collection
  • Mark and Compact
  • Mark and Sweep
  • Parallel Collection
  • Parallel Compacting Collector
  • Parallel GC
  • Serial GC
  • Shenandoah GC
  • StopTheWorld
  • ZGC