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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET Compact FrameworkΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 24

Автор Иво Π‘Π°Π»ΠΌΡ€Π΅

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

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ сборки мусора

ПолСзно Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ взаимодСйствуСт с ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ прилоТСния Π² процСссС Π΅Π³ΠΎ выполнСния.

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

Рис. 3.2. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ΅ схСматичСскоС прСдставлСниС состояния памяти прилоТСния Π² процСссС выполнСния


Π’Π°Π±Π»ΠΈΡ†Π° 3.1. УсловныС графичСскиС обозначСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π° рис. 3.2, 3.3 ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… рисунках

Π€ΠΈΠ³ΡƒΡ€Π° ОписаниС Π’Π΅ΠΌΠ½ΠΎ-сСрыС ΠΎΠ²Π°Π»Ρ‹ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² настоящСС врСмя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Obj12 Π½Π° рис. 3.2). Π‘Π΅Π»Ρ‹Π΅ ΠΎΠ²Π°Π»Ρ‹ ΠŸΠ°ΡΡΠΈΠ²Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π­Ρ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Obj6 Π½Π° рис. 3.2) ΡΠ²Π»ΡΡŽΡ‚ΡΡ "мусором", ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρƒ прилоТСния большС Π½Π΅Ρ‚ доступа ΠΈ ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ с Ρ†Π΅Π»ΡŒΡŽ высвобоТдСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти. Π’Π΅ΠΌΠ½ΠΎ-сСрыС ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Описания классов ΠΈ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ осущСствлял доступ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Код, содСрТащийся Π² классах. (Код Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ класса.) Π’Π΅ΠΌΠ½ΠΎ-сСрыС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Код, ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚Ρ‹ΠΉ JIΠ’-компиляции, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ΄ Code1 класса ClassXYZ Π½Π° рис.3.2). Π‘Π²Π΅Ρ‚Π»ΠΎ-сСрыС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ‰Π΅ Π½Π΅ подвСргался JIΠ’-компиляции. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°ΠΌΠΈ JIΠ’-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° эти ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ мСньшиС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, ΠΈΠ±ΠΎ Π΅Ρ‰Π΅ Π½Π΅ скомпилированныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚ΠΎΠ΄ Code4 класса XYZ Π½Π° рис. 3.2) Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π² памяти ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ мСста.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π½Π° рис. 3.2 схСму ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

β–  Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов схСмы Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π΄Π°Π²Π°Π»ΠΈ прСдставлСниС ΠΎΠ± ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ большиС классы ΠΈ Ρ‚ΠΈΠΏΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ большС памяти ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ мСньшими, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ содСрТат большС "Π½Π°Ρ‡ΠΈΠ½ΠΊΠΈ". ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ памяти. ΠŸΠ°ΡΡΠΈΠ²Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° опСрация сборки мусора. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Π²ΡˆΠΈΠ΅ΡΡ JIΠ’-компиляции, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π² памяти ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ мСста.

β–  Π’ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ описания всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΈ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ классов Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ памяти.

β–  JIT-компиляции ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: JIT-компиляции ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Π»ΠΈΡΡŒ ΠΊΠΎΠ΄Ρ‹ Code1, Code2, Code3 ΠΈ Code7 класса ClassXYZ.

β–  Π’Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ, Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ поэтому Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста Π² памяти. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Code4 ΠΈ Code5 класса XYZ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Π»ΠΈΡΡŒ JIΠ’-компиляции. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Π½Ρ‹, Π±ΡƒΠ΄Π΅Ρ‚ осущСствлСна ΠΈΡ… JIT-компиляция ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ распрСдСлСниС памяти для ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

β–  ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой экзСмпляры Ρ‚ΠΈΠΏΠΎΠ² ΠΈ классов ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ мСста Π² памяти.

β–  "АктивныС (live) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹" β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ваш ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΏΡƒΡ‚Π΅ΠΌ нСпосрСдствСнного ΠΈΠ»ΠΈ опосрСдованного использования Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ…, статичСских ΠΈ стСковых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

β–  "ΠŸΠ°ΡΡΠΈΠ²Π½Ρ‹Π΅ (dead) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹" β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ со стороны вашСго прилоТСния стал ΡƒΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, Π½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ· памяти ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ. Π’Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π½Π° рис. 3.2 ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Obj 3, Obj 6, Obj 9 ΠΈ Obj11. Π”ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈΠ»ΠΈ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ.

По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°ΠΌΡΡ‚ΡŒ распрСдСляСтся ΠΈΠ· ΠΊΡƒΡ‡ΠΈ, Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ впослСдствии ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ, наступит Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΠ² ΠΈΠ· памяти пассивныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ сборку мусора. БостояниС памяти прилоТСния нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сборки мусора ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 3.3.

По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ сборки мусора становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ пассивных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· памяти с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях позволяСт ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Π΅ свободныС участки памяти большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². БостояниС памяти прилоТСния нСпосрСдствСнно послС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сборки мусора ΠΈ уплотнСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 3.4.

Рис. 3.3. БостояниС памяти прилоТСния нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ сборкой мусора


Рис. 3.4. ΠŸΠ°ΡΡΠΈΠ²Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ· памяти, Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ β€” ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½Ρ‹


Π’ состоянии Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ устойчивого выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пСриодичСски создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ избавляСтся ΠΎΡ‚ Π½ΠΈΡ…. Π’ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… случаях ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ осущСствляСт сборку мусора ΠΈ уплотняСт ΠΏΠ°ΠΌΡΡ‚ΡŒ, освобоТдая Π΅Π΅ для размСщСния вновь создаваСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ состояниС памяти прилоТСния Π² условиях сосущСствования Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈ пассивных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 3.5.

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

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

Рис. 3.5. Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ состояниС памяти прилоТСния ΠΏΡ€ΠΈ Π΅Π³ΠΎ устойчивом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ


Рис. 3.6. Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ состояниС памяти прилоТСния ΠΏΡ€ΠΈ Π΅Π³ΠΎ устойчивом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ нСпосрСдствСнно послС сборки мусора


Рис. 3.7. АктивныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ всю Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ


.NET Compact Framework справляСтся с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ситуациями, освобоТдая большиС количСства памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½ любой ΠΊΠΎΠ΄, Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ с использованиСм стСка (ΠΈΠ»ΠΈ стСков, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ). Π­Ρ‚ΠΎ позволяСт Π²ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для Π½ΡƒΠΆΠ΄ прилоТСния, связанных с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ размСщСния Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ JIT-компиляции Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² случаС, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π½Π΅Π΅ Π½Π΅ выполнялся, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вызываСтся. БостояниС памяти прилоТСния послС отбрасывания Ρ€Π°Π½Π΅Π΅ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ сборки мусора ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 3.8.