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



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

ПриМеЧание
Тесты.быстродействия,.проведенные.Microsoft,.показали,.что.уборка.мусора.в.по-
колении.0.занимает.меньше.1.мс .Microsoft.стремится.к.тому,.чтобы.уборка.мусора.
занимала.не.больше.времени,.чем.обслуживание.обычной.страничной.ошибки 
1
Когда JIT-компилятор создает машинный код, модифицирующий ссылочное поле внутри 
объекта, туда входит вызов барьерного метода записи (write barrier method). Этот метод про-
веряет, принадлежит ли объект, поля которого изменяются, к поколению 1 или 2. В случае 
положительного результата код барьерного метода записи устанавливает бит во внутренней 
таблице (card table). Эта таблица содержит по одному биту для каждого 128-байтного диа-
пазона данных в куче. В начале следующего цикла сборки мусора из таблицы определяется, 
поля каких объектов поколений 1 и 2 изменились с момента прошедшей сборки. Если какой-то 
из этих объектов ссылается на объект поколения 0, этот объект переживает уборку мусора. 
После завершения процедуры всем полям таблицы возвращаются нулевые значения. Наличие 
кода барьерного метода записи негативно сказывается на производительности при записи 
ссылочных полей у объекта (в отличие от локальных переменных или статических полей). 
Производительность падает еще больше, если объект принадлежит поколению 1 или 2.


565
Поколения
Уборщик мусора с поддержкой поколений также предполагает, что объекты, 
прожившие достаточно долго, продолжат жить и дальше. Так что велика вероят-
ность, что объекты поколения 1 и впредь останутся доступными в приложении. 
То есть проверив объекты поколения 1, уборщик нашел бы мало мусора и не смог 
бы освободить много памяти. Следовательно, уборка мусора в поколении 1, скорее 
всего, окажется пустой тратой времени. Если в поколении 1 появляется мусор, он 
просто остается там. Сейчас куча выглядит, как показано на рис. 21.7.
рис. 21.7.
.Вид.кучи.после.двух.операций.уборки.мусора:.выжившие.объекты.
из.поколения.0.переходят.в.поколение.1.(увеличивая.его.размер),.
поколение.0.пустует
Как видите, все объекты из поколения 0, пережившие уборку мусора, перешли 
в поколение 1. Так как уборщик не проверяет поколение 1, память, занятая объек-
том 
В
, не освобождается, даже если этот объект на момент уборки мусора недоступен. 
И в этот раз после уборки мусора поколение 0 пустеет, в это поколение попадут 
новые объекты. Допустим, приложение работает дальше и выделяет память под 
объекты 
L

O
. Во время работы приложение прекращает использовать объекты 
G

L
и 
M
, и они становятся недоступными. В результате куча выглядит так, как по-
казано на рис. 21.8.
рис. 21.8.
.В.поколении.0.созданы.новые.объекты,.количество.мусора.
в.поколении.1.увеличилось
Допустим, в результате размещения объекта 
P
размер поколения 0 превысил 
пороговое значение, что инициировало уборку мусора. Поскольку все объекты 
поколения 1 занимают в совокупности меньше порогового уровня, уборщик вновь 
решает собрать мусор только в поколении 0, игнорируя недоступные объекты в по-
колении 1 (
B
и 
G
). Куча после уборки мусора показана на рис. 21.9.
рис. 21.9.
.Вид.кучи.после.трех.операций.уборки.мусора:.выжившие.объекты.
из.поколения.0.переходят.в.поколение.1.(увеличивая.его.размер);.
поколение.0.пустеет


566
Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   410   411   412   413   414   415   416   417   ...   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