A-tit indd



Download 3,35 Mb.
Pdf ko'rish
bet277/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   273   274   275   276   277   278   279   280   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

Рис. 18.5.
Графический интерфейс для грязного флага
Многие программы не сохраняют на диск, пока 
пользователи или не закроют документ, или не выйдут 
Это отражает различные 
стратегии сборщиков 
мусора в системах, где 
управление памятью 
осуществляется автома-
тически. Подсчет ссы-
лок освобождает память 
ровно в ту секунду, ко-
гда она становится 
не нужна, но, чтобы каж-
дый раз считать ссылки 
при их изменении, тра-
тится много ресурсов 
процессора.
Простые сборщики 
мусора откладывают 
освобождение памяти 
до момента, пока она 
действительно не пона-
добится, но за это вы 
платите ужасной «пау-
зой сборщика мусора», 
которая может остано-
вить всю систему на не-
определенное время.
Обычно используются 
более сложные системы, 
представляющие собой 
нечто среднее между 
отложенным подсчетом 
ссылок и пошаговым 
сбором мусора. Они 
освобождают память 
реже, чем сборщики 
с подсчетом ссылок, 
но чаще, чем сборщики, 
которые останавливают 
мир.


378
Грязный флаг (Dirty Flag) — 
Паттерны программирования игр
из программы. В большинстве случаев это нормально, 
но, если вы вдруг случайно выдернете компьютер из ро-
зетки, вы потеряете свой шедевр.
Редакторы, производящие автосохранение в фоно-
вом режиме, компенсируют названный недостаток. Про-
межутки автосохранения — компромисс между потерей 
большого количества данных в случае сбоя и засорением 
файловой системы слишком частым сохранением.
Вам надо убедиться, что флаг устанавливается 
каждый раз при смене состояния
Производные данные рассчитываются из первичных 
и по сути являются кэшем. И когда бы вы ни использо-
вали кэшированные данные, самое сложное в работе 
с ними —
недействительность кэша (cache invalidation
), 
то есть когда данные в кэше не синхронизированы с пер-
вичными. В случае данного паттерна это значит уста-
новку грязного флага в ситуации, когда изменяются 
лю-
бые
первичные данные.
Пропустите в одном месте, а в программе будут исполь-
зоваться некорректные устаревшие производные данные. 
Как итог — замешательство игроков и ошибки, которые 
весьма трудно отследить. При использовании данного 
паттерна вам нужно убедиться, что любой код, изменяю-
щий первичные данные, устанавливает грязный флаг.
Один из способов снизить риск — поместить любые из-
менения в первичных данных за какой-нибудь интерфейс. 
Если все, что захочет внести изменения, будет проходить 
через узкий API, вы можете устанавливать грязный флаг 
прямо в нем и не сомневаться: ничто не будет упущено.

Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   273   274   275   276   277   278   279   280   ...   313




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