Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet415/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   411   412   413   414   415   416   417   418   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C


Глава.21 .Автоматическое.управление.памятью.(уборка.мусора)
На рисунке видно, что поколение 1 постепенно растет. Допустим, поколение 1 
выросло до таких размеров, что все его объекты в совокупности превысили порого-
вое значение. В этот момент приложение продолжает работать (потому что уборка 
мусора только что завершилась) и начинает размещение в памяти объектов 
P

S

которые заполняют поколение 0 до его порогового значения (рис. 21.10).
рис. 21.10.
.Новые.объекты.размещены.в.поколении.0,.
в.поколении.1.появилось.больше.мусора
При попытке приложения разместить объект 
Т
поколение 0 заполняется и на-
чинается уборка мусора. Однако на этот раз уборщик мусора обнаруживает, что 
место, занятое объектами, превысило пороговое значение. После нескольких опе-
раций уборки мусора в поколении 0 велика вероятность, что несколько объектов 
в поколении 1 стали недоступными (как в нашем примере). Поэтому теперь убор-
щик мусора проверяет все объекты поколений 1 и 0. После уборки мусора в обоих 
поколениях куча выглядит так, как показано на рис. 21.11.
рис. 21.11.
.Вид.кучи.после.четырех.операций.уборки.мусора:.выжившие.объекты.
из.поколения.1.переходят.в.поколение.2,.выжившие.объекты.из.поколения.0.
переходят.в.поколение.1,.поколение.0.снова.пусто
Все выжившие объекты поколения 0 теперь находятся в поколении 1, а все 
выжившие объекты поколения 1 — в поколении 2. Как всегда, сразу после уборки 
мусора поколение 0 пустеет: в нем будут размещаться новые объекты. В поколе-
нии 2 находятся объекты, проверенные уборщиком мусора не меньше двух раз. 
Операций уборки мусора может быть много, но объекты поколения 1 проверяются 
только тогда, когда их суммарный размер достигает порогового значения — до этого 
обычно проходит несколько операций уборки мусора в поколении 0.
Управляемая куча поддерживает только три поколения: 0, 1 и 2. Поколения 3 не 
существует
1
. При инициализации в CLR устанавливается пороговое значение для 
всех трех поколений. Уборщик мусора CLR является самонастраивающимся, то есть 
в процессе работы он анализирует функциональность приложения и адаптируется. 
Например, если приложение создает множество объектов и пользуется ими очень 
1
Статический метод MaxGeneration класса System.GC возвращает 2.


567
Поколения
недолго, уборка мусора в поколении 0 позволяет освободить много памяти. На 
самом деле, в поколении 0 можно освободить память всех объектов.
Если уборщик видит, что после уборки мусора в поколении 0 остается очень мало 
выживших объектов, он может снизить порог для поколения 0. В этом случае уборка 
мусора будет выполняться чаще, но это меньше загрузит уборщик, поэтому рабочий 
набор процесса останется небольшим. В сущности, если все объекты поколения 0 
станут мусором, уборщику не придется даже дефрагментировать память — доста-
точно будет вернуть указатель 
NextObjPtr
в начало поколения 0, чтобы посчитать 
уборку мусора законченной. Замечательный способ освобождения памяти!

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   411   412   413   414   415   416   417   418   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish