Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 87

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

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

НаиболСС ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ являСтся лишь автоматичСская сборка мусора ΠΈΠ»ΠΈ просто сборка мусора.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сборки мусора

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора (garbage collector) - это функция ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы (runtime system) языка программирования. Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора выполняСт ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ нСдостиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π΅ Π½ΡƒΠΆΠ΄Π°ΡΡΡŒ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, хотя ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² своСм распоряТСнии Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ срСдства контроля Ρ€Π°Π±ΠΎΡ‚Ρ‹ сборщика.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ рассмотрСниС всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ сборки мусора Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. (Π’ ΠΊΠΎΠ½Ρ†Π΅ Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° библиография ΠΏΠΎ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅.) Рассмотрим ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, концСнтрируя Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° свойствах, Π²Π°ΠΆΠ½Ρ‹Ρ… для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ВрСбования ΠΊ сборщику мусора

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора, нСсомнСнно, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ, удовлСтворяя Π΄Π²ΡƒΠΌ трСбованиям:

Бвойства сборщика мусора

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ собираСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ нСдостиТимым.

ΠŸΠΎΠ»Π½ΠΎΡ‚Π°: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ нСдостиТимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ собран.

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ - Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅: Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ мусор, Ρ‡Π΅ΠΌ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. НуТна полная ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ слСпо Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. ЀактичСски Π½Π°Π΄ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ Π½Π΅ΠΌ ΠΏΠΎΡ‡Ρ‚ΠΈ навсСгда, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ бСспорядок Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ мусор Π² вашСм офисС, ΠΊΠΎΠ³Π΄Π° вас Π½Π΅Ρ‚, Π½ΠΎ Π½Π΅ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΡ€ΠΈ этом ваши ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈ сСмСйныС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ со стола.

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

Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ любой сборщик ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ‚ΠΎΠΉ. ΠŸΠΎΠ»Π½ΠΎΡ‚Π° Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, ΠΊΠ°ΠΊ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ ТСстка, Ссли ΠΏΠ΅Ρ€Π΅Ρ„Ρ€Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: "ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ нСдостиТимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², собран". ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс сборки Π±ΠΎΠ»Π΅Π΅ эффСктивным, благодаря Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ нСдостиТимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ…: такая схСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ этом идСя обсуТдаСмого Π΄Π°Π»Π΅Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° "сборки мусора ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² цСлях эффСктивности Ρ‡Π°Ρ‰Π΅ сканируСт области памяти, содСрТащиС с большСй Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ нСдостиТимыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΈ Ρ€Π΅ΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ участки памяти.

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ качСствСнности высвСчиваСт трудности, связанныС со сборкой мусора для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языков программирования, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ языка ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сборка мусора ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° для Π‘++? ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ связаны с ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€ΠΎΠΉ: Π² ΠΌΠΈΡ€Π΅ Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ сам Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ своих "ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ°Ρ…" (ΠΏΠΎ словам БтСфСнсона); ΠΎΠ½ просто Π½Π΅ довСряСт ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ автоматичСскому ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡƒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ Π΄Π΅Π»Π°ΠΌΠΈ. Но, Ссли Π±Ρ‹ это Π±Ρ‹Π»ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, Π° Π½Π΅ апостСриорным ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅ΠΌ, срСды Π‘++ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ сборку мусора ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ этого Π½Π΅ Π΄Π΅Π»Π°ΡŽΡ‚.

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π»Π΅ΠΆΠΈΡ‚ Π² структурС языка, Π° Π½Π΅ Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ компиляции ΠΈΠ»ΠΈ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Ρ‹Ρ… традициях. Π―Π·Ρ‹ΠΊ Π‘++, слСдуя Π‘, слабо Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½; ΠΎΠ½ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСобразования Ρ‚ΠΈΠΏΠ°, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π½Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ:


(OTHER_TYPE) x


ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ x рассматриваСтся ΠΊΠ°ΠΊ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠ° OTHER_TYPE, связанного ΠΈΠ»ΠΈ нСсвязанного с истинным Ρ‚ΠΈΠΏΠΎΠΌ x. Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ Π‘++ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅Π³Π°ΡŽΡ‚ прилоТСния ΠΎΡ‚ примСнСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… конструкций. Но Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ компилятора Π΄Π΅Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΡƒΠ΄Π°, - ΠΎΠ½ΠΈ обязаны Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык Π² соотвСтствии с Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий. Бсылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, скаТСм NUCLEAR_SUBMARINE, Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΊ Ρ‚ΠΈΠΏΡƒ integer. Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ ссылки, Π° Π²ΠΈΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»ΠΎΠ΅ Ρ‚ΠΈΠΏΠ° integer. НС находя Π΄Ρ€ΡƒΠ³ΠΈΡ… ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, сборщик ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π»ΠΎΠ΄ΠΊΡƒ. Когда, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π² ссылку Ρ‚ΠΈΠΏΠ° NUCLEAR_SUBMARINE, Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ ΠΏΠΎΠ·Π΄Π½ΠΎ, - ΠΏΠΎΠ΄Π»ΠΎΠ΄ΠΊΠ° ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Π°.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΈΡΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π¨ΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ примСнСния ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΈΠ·-Π·Π° Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Π―Π·Ρ‹ΠΊ Java ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ язык сСмСйства C++, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π²Π΅Π΄Π΅Π½Ρ‹ сущСствСнныС ограничСния Π½Π° систСму Ρ‚ΠΈΠΏΠΎΠ², Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ удалСния мноТСствСнного наслСдования ΠΈ унивСрсализации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ сборку мусора Π² ΠΌΠΈΡ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, основанных Π½Π° Π‘.

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

Основа сборки мусора

Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ сборщика мусора.

Основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π²Π΅ Ρ„Π°Π·Ρ‹: ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° ΠΈ чистка. Π€Π°Π·Π° ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ, начиная с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠ², рСкурсивно слСдуСт ссылкам, ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ структуры ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΊ достиТимыС всС встрСчСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π€Π°Π·Π° чистки ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ всю структуру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², утилизируя всС Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ удаляя всС ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ. (Об ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°Ρ… см. Ρ€Π°Π·Π΄Π΅Π» "ДостиТимыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ОО-ΠΌΠΎΠ΄Π΅Π»ΠΈ этой Π»Π΅ΠΊΡ†ΠΈΠΈ.")

Как ΠΈ Π² случаС с подсчСтом ссылок, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ здСсь для ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ. Но трСбуСмая для этого поля ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°, - достаточно ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Как Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ динамичСского связывания, рСализация ОО-возмоТностСй Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏ). Π­Ρ‚Π° информация ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π΄Π²Π° слова Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. Π‘ΠΈΡ‚ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ слуТСбного слова, ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ "всС-ΠΈΠ»ΠΈ-Π½ΠΈΡ‡Π΅Π³ΠΎ"

Когда Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² дСйствиС сборщик мусора?

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ сборщики мусора Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, сборщик мусора Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΠΊΠ° остаСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΅ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» сборки мусора - Ρ„Π°Π·Π° ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ слСдом Ρ„Π°Π·Π° чистки.

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

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

Для ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ такая схСма Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠ°. Но ΠΈ здСсь ΠΏΡ€ΠΈ высоком коэффициСнтС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ссли систСма создаСт большоС число ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², лишь малая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ достиТимыми.

Π‘Π±ΠΎΡ€ΠΊΠ° мусора ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ "всС-ΠΈΠ»ΠΈ-Π½ΠΈΡ‡Π΅Π³ΠΎ" Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… систСм ΠΈΠ»ΠΈ систСм Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ систСму обнаруТСния Ρ€Π°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ нападСния, которая ΠΈΠΌΠ΅Π΅Ρ‚ 50-миллисСкундный ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» для рСагирования Π½Π° запуск Ρ€Π°ΠΊΠ΅Ρ‚Ρ‹. Допустим, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°, ΠΏΠΎΠΊΠ° систСма Π½Π΅ Π²Ρ‹ΡˆΠ»Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ памяти, Π½ΠΎ, ΠΊ Π½Π΅ΡΡ‡Π°ΡΡ‚ΡŒΡŽ это событиС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска Ρ€Π°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° вмСсто систСмы Π½Π°Ρ‡Π°Π» свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ сборщик мусора.

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

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ Π² глобальном эффСктС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ, связанных со сборкой мусора: опрСдСлСнная потСря ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ допустимой для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Π° Π·Π° Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ удобство, прСдоставляСмоС автоматичСской сборкой мусора. Но Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ распрСдСлСны. НСприСмлСмы нСпрСдсказуСмыС всплСски активности сборщика мусора. Π›ΡƒΡ‡ΡˆΠ΅ Ρ‡Π΅Ρ€Π΅ΠΏΠ°Ρ…Π°, Ρ‡Π΅ΠΌ заяц, врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π· прСдупрСТдСния Π·Π°ΡΡ‹ΠΏΠ°ΡŽΡ‰ΠΈΠΉ Π½Π° полчаса. ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ссылок, Ссли Π±Ρ‹ Π½Π΅ Π΅Π³ΠΎ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€ΠΎΠΊ, удовлСтворял Π±Ρ‹ Π»ΠΎΠ·ΡƒΠ½Π³Ρƒ: "Π»ΡƒΡ‡ΡˆΠ΅ Π΅Ρ…Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½ΠΎ с постоянной ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Π΅ΠΌ быстро, Π½ΠΎ с Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ нСпрСдсказуСмыми остановками".