Надо ли заботиться о памяти?
Надо ли заботиться о памяти?
Другой аргумент, который можно услышать в оправдание несерьезному подходу, - это постоянный рост объема доступной памяти компьютера и уменьшение цены памяти.
Используемая память может быть как виртуальной, так и реальной. В системах виртуальной памяти первичная и вторичная память делится на блоки, называемые страницами. Вновь требуемые страницы первичной памяти вытесняют во вторичную память редко используемые страницы первичной памяти. Если такая система используется для работы с ОО-системами, страницы, содержащие недостижимые объекты, будут вытесняться и освободят основную память для часто используемых объектов.
Если бы действительно в нашем распоряжении было почти безграничное количество почти свободной памяти, можно было бы удовлетвориться несерьезным подходом.
К несчастью, это не так.
Первая причина в том, что на практике виртуальная память не эквивалентна реальной. Если хранить большое количество объектов в виртуальной памяти, в которой меньшинство достижимых объектов рассыпано среди большинства недостижимых, то процесс выполнения будет постоянно вызывать перемещение страниц памяти, феномен, известный как пробуксовка (trashing), приводящий к драматическому увеличению времени выполнения. Действительно, системы виртуальной памяти усложняют эффективное разделение двух основных аспектов - пространства и времени. (См. "Эффективность", лекцию 1.)
Но есть более важное ограничение применения несерьезного подхода. Даже большая память имеет границы. Удивительно, как быстро программисты к ним подходят. Как только мы выходим за пределы систем с небольшим числом недостижимых объектов, лицом к лицу сталкиваемся с проблемой восстановления памяти.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Что надо для загрузки loadkeys скриптов?
Что надо для загрузки loadkeys скриптов? Если вы решили вкомпилить вашу раскладку (keymap) напрямую в ядро, вернитесь в конец 6-й главы, где вам четко сказано, что не требуется его (скрипт) запускать, если вы уже вкомпилили раскладку (keymap) в ядро. Но вы можете запустить крипт если
17.1. Что такое ядро и когда его надо менять
17.1. Что такое ядро и когда его надо менять Каждый, кто хоть немного интересовался тем, что такое Linux, обязательно встречал в различных руководствах термин "ядро", по-английски - kernel. Ядро - это важнейшая часть Linux, как и любой другой операционной системы, поскольку именно ядро
17.4.2 Что надо знать до начала компиляции
17.4.2 Что надо знать до начала компиляции Пожалуй, самое первое, к чему нужно быть готовым, приступая к компиляции ядра, - это то, что процедура эта длительная. Так что не рассчитывайте скомпилировать ядро "между делом", в свободную минутку. Заранее планируйте, что потратите
Как не надо знакомиться в интернете Автор – Mankubus (www.lover.ru)
Как не надо знакомиться в интернете Автор – Mankubus (www.lover.ru) Парни, никогда не знакомьтесь с сетевыми крошками – они обманут!Они завалят вас стихами и джипегами с репродукциями великих живописцев.Они будут слать мессаги про любимых кошечек и собачек (потом ты пожалеешь, что
Чтобы убеждать, надо знать потребности клиентов
Чтобы убеждать, надо знать потребности клиентов Компания Nike предлагает много всего на своем сайте, но не похоже, чтобы она стремилась удовлетворить своих клиентов. При разработке сайта уделите особое внимание навигации, сделайте ее настолько простой, насколько это
Сколько надо времени?
Сколько надо времени? Каждому хочется сделать большую и активную группу на Facebook как можно быстрее. Даже когда число друзей в нашей группе росло на 1500 человек в сутки, я считал, что это ужасно медленно! Чтобы вывести в лидеры среди компаний в России группу ESET NOD32 Russia, нашей
Сколько надо денег?
Сколько надо денег? Мне и моим коллегам удалось, не потратив ни копейки, создать две группы по 100 000 друзей. В нашей компании не было бюджета на Facebook, поэтому мы изначально искали способы, как набрать друзей без денег и без рекламы на Facebook или где-то еще. Вы не хуже нас и
Что надо публиковать?
Что надо публиковать? Если вам кажется, что публиковать нечего, вы сильно ошибаетесь. У любой компании масса новостей, независимо от возраста и масштаба бизнеса. Вот далеко не полный перечень того, о чем вы можете рассказывать на страницах вашей группы Facebook:– Выпуск,
Глава 4. Кому не надо идти в социальные сети
Глава 4. Кому не надо идти в социальные сети Есть ряд бизнесов, которым нет смысла идти в социальные сети. Прежде всего, это узконишевые B2B-проекты – как правило, строительство, промышленность, продажи дорогого специализированного оборудования. Причины просты: здесь
Что и зачем надо замерять
Что и зачем надо замерять Достаточно серьезной ошибкой является попытка выполнить замеры полученных результатов после внедрения нескольких технологий. Например, вы внесли ряд изменений на главную страницу интернет-магазина и кое-что изменили на странице с корзиной
Шаг 1 - Введение. Зачем все это надо и что это такое.
Шаг 1 - Введение. Зачем все это надо и что это такое. Чтобы сразу пояснить свой план, сообщу - здесь и далее я собираюсь вместе с Вами разобрать следующие темы:1. Объекты-указатели на другие объекты.2. Объекты-интерфейсы к другим объектам.3. Использование шаблонов как средства
9.1.3. Когда не надо перегружать имя функции
9.1.3. Когда не надо перегружать имя функции В каких случаях перегрузка имени не дает преимуществ? Например, тогда, когда присвоение функциям разных имен облегчает чтение программы. Вот несколько примеров. Следующие функции оперируют одним и тем же абстрактным типом
ПИСЬМОНОСЕЦ: Лектор с проектором - а надо бы с битой?
ПИСЬМОНОСЕЦ: Лектор с проектором - а надо бы с битой? Захожу вчера в автобус. На заднем «диванчике» расположилась компания ребят по 16-17 лет (причем у одного из них была бейсбольная бита!), и они передают какой-то Nokia-смартфон из рук в руки, что-то рассматривая и оживленно