A-tit indd


Паттерны программирования игр



Download 3,35 Mb.
Pdf ko'rish
bet49/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   45   46   47   48   49   50   51   52   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

Паттерны программирования игр
— Другой взгляд на паттерны проектирования
67
удобнее работать с асинхронной связью с помощью Оче-
реди событий (с. 296).
«Слишком много динамического 
выделения памяти»
Все члены племени программистов, в их числе мно-
гие разработчики игр, перешли на языки с механиз-
мом сбора мусора, и теперь динамическое выделение 
памяти — уже не тот монстр, которым когда-то был. 
Но для программ, таких требовательных к производи-
тельности, как игры, распределение памяти по-преж-
нему имеет значение даже на управляемых языках. Ди-
намическое выделение памяти требует времени, равно 
как и ее распределение, даже если оно происходит ав-
томатически.
В предыдущем примере кода я использовал массив 
фиксированного размера, поскольку я стараюсь донес-
ти все настолько просто, насколько возможно. В рабочем 
коде список наблюдателей почти всегда представляет со-
бой динамически расширяемый список, растущий и сжи-
мающийся по мере добавления и удаления наблюдателей. 
Такая работа с памятью пугает некоторых людей.
Необходимо заметить, что память выделяется толь-
ко при регистрации наблюдателей. 
Отправка
уведомле-
ния не требует выделения памяти совсем — это просто 
вызов метода. Если вы подключите своих наблюдателей 
в начале и не слишком часто будете изменять список на-
блюдателей в процессе игры, вы сведете к минимуму ко-
личество выделяемой памяти.
Если это все еще проблема, я покажу способ, как реа-
лизовать добавление и удаление наблюдателей вообще 
без динамического выделения памяти.
Зависимые наблюдатели
В коде, который мы видели ранее
Subject
имеет спи-
сок из указателей для каждого наблюдателя. Сам класс 
Observer
не имеет ссылок на упомянутый список. Это 
Многие разработчики 
игр беспокоятся 
не столько о выделении 
памяти, сколько о ее 
фрагментации
. Когда 
ваша игра должна рабо-
тать непрерывно в тече-
ние нескольких дней 
без сбоев, чтобы пройти 
сертификацию, чрез-
мерная фрагментация 
памяти может помешать 
вам.
В главе «Пул объектов 
(Object Pool)» (с. 388) 
рассказывается об этом 
подробнее, а также да-
ется общая техника, как 
избежать связанных 
с фрагментацией неудач.



Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   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