A-tit indd


Необходимо хранить в памяти предыдущие



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

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


Паттерны программирования игр
— Паттерны оптимизации
379
Если бы вы не использовали данный паттерн, то мог-
ли бы произвести нужные расчеты прямо на ходу по мере 
надобности и сразу от них избавиться. Такой способ по-
могает избежать расходов на хранение данных в памя-
ти за счет необходимости производить вычисления каж-
дый раз, когда вам нужны данные.
Как и многие другие паттерны оптимизации, этот 
меняет память на скорость. За то, что держите в памяти 
некоторые данные, вы избавляетесь от необходимости 
заново производить вычисления, если данные не изме-
нились. Если у вас больше времени, чем памяти, то луч-
ше производить расчеты по необходимости.
Пример кода
Предположим, мы увидели чертовски длинный список 
требований и сочли данный паттерн подходящим для 
решения полученной задачи. Как я говорил ранее, ма-
тематика, которая стоит за преобразованиями, выходит 
за скромные рамки моей книги, поэтому я инкапсули-
рую ее в класс, а вы можете представить, что он действи-
тельно где-то реализован:
class Transform
{
public:
static Transform origin();
Transform combine(Transform& other);
};
Тут нам нужна единственная операция —
combine()

с ее помощью мы получим глобальные преобразова-
ния объекта путем комбинирования локальных пре-
образований всех его предков в иерархии. Также есть 
метод, позволяющий получить «изначальные» преоб-
разования, — единичная матрица, которая означает 
отсутствие перемещения, поворота или масштабиро-
вания.
Алгоритмы сжатия про-
изводят обратный об-
мен: они оптимизируют 
пространство
за счет 
времени обработки, не-
обходимого для разар-
хивирования.



Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   274   275   276   277   278   279   280   281   ...   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