C++: библиотека программиста



Download 1,95 Mb.
Pdf ko'rish
bet114/144
Sana24.02.2022
Hajmi1,95 Mb.
#223123
TuriРеферат
1   ...   110   111   112   113   114   115   116   117   ...   144
Bog'liq
C -Eldjer-Djeff-for-Real-Programmers-RUS-www.itlibitum.ru


главах, требует досконального понимания базового материала, приведенного выше. 
Первая группа стратегий имеет одну общую черту: клиентский код сам решает, когда следует удалить 
объекты и вернуть память в систему. Иногда это осуществляется косвенно, но в любом случае память 
возвращается лишь после выполнения клиентом определенных действий. 
Стратегии второй группы построены на концепции подсчета ссылок. Это первый пример 
автоматической сборки мусора — темы, которая будет обобщена в последних главах книги. Подсчет 
ссылок способен принести огромную пользу, но, как мы вскоре увидим, он также обладает рядом 
довольно жестких ограничений. 
Наконец, мы рассмотрим общую концепцию, на основе которой строятся более изощренные методики: 
пространство памяти. На самом деле это всего лишь новый подход к низкоуровневым методикам, при 
котором они предстают в свете архитектуры, а не оптимизации. 
Строительные блоки 
В числе основных принципов нестандартного управления памятью в С++ должен быть следующий: 
«Придумайте откровенную глупость; вполне возможно, из этого что-нибудь получится». Даже если 
идея не сработает сама по себе, она может пригодиться в качестве отправной точки. 
Поблочное освобождение памяти 
Если выделение и освобождение памяти плохо влияет на быстродействие программы, иногда самое 
простое решение проблемы заключается в выполнении операций с блоками. Память выделяется снизу 
блока к его верху, а возвращается в систему сразу целым блоком (а не отдельными объектами). 
Фиктивное удаление 
Задача многих программ — побыстрее отработать свое и уйти. Это особенно справедливо в среде Unix, 
где сценарии оболочки объединяют множество крошечных, недолговечных программ. Нередко 
выделение памяти для новых объектов оказывается самым серьезным фактором, снижающим 
быстродействие таких программ. Простая стратегия оптимизации заключается в том, что вы выделяете 
память под объекты снизу вверх большого блока и не удаляете их
struct Pool { 
static Pool* gCurrentPool; 
// Пул для выделения памяти 
enum { block_size = 8096 }; 
// Выберите свой любимый размер 
unsigned char* space;
// Следующая выделяемая область 
size_t 
remaining; 
// 
Количество оставшихся байт в блоке 

Download 1,95 Mb.

Do'stlaringiz bilan baham:
1   ...   110   111   112   113   114   115   116   117   ...   144




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