Локальность ссылок
Локальность ссылок
Самое время обсудить еще одну концепцию - локальность ссылок. Этот принцип представляет собой метод представления приложений, который помогает свести вероятность возникновения пробуксовки к минимуму. Это понятие предполагает, что связанные данные должны находиться в виртуальной памяти как можно ближе друг к другу. Если принцип локальности ссылок соблюдается, при считывании части данных другую их часть можно будет найти на соседних страницах памяти.
Например, массив записей имеет высокий уровень локальности ссылок. Так, элемент с индексом 1 в памяти находится рядом с элементом с индексом 2 и т.д. Если приложение последовательно считывает все записи массива, локальность ссылок будет очень высокой. Обмен страницами между диском и памятью будет минимальным. Экземпляр объекта TList, содержащий указатели на тот же тип записей, несмотря на то, что это тоже массив, фактически содержащий те же данные, будет иметь низкий уровень локальности ссылок. Как было показано ранее, каждый элемент такого массива может находиться на отдельной странице. Таким образом, последовательное считывание элементов вызовет обмен данными между диском и памятью. Связанные списки (см. главу 3) также обладают низким уровнем локальности ссылок.
Существуют специальные методы повышения уровня локальности ссылок для различных структур данных и алгоритмов, и некоторые из них будут рассмотрены в настоящей книге. К нашему сожалению, диспетчер динамического распределения памяти Delphi является слишком общим. Программист не может вынудить Delphi выделить память под серию элементов из одной страницы. Еще хуже тот факт, что все объекты представляют собой экземпляры, память для которых выделяется из кучи. Возможность выделения памяти для отдельных объектов из определенных страниц позволила бы избежать многих неприятностей. (В действительности это возможно за счет подмены метода класса Newlnstance, но подмену приходится делать для всех классов, для которых нужна такая возможность.)
До сих пор мы говорили о локальности ссылок в смысле расстояния ("один объект находится в памяти рядом с другим объектом"), но локальность ссылок можно трактовать и по отношению ко времени. Это означает, что если элемент недавно использовался, он скоро будет использоваться снова, или, скажем, элемент X всегда используется вместе с элементом Y. Воплощением локальности ссылок во времени является кэш-память. Кэш-память (cache) представляет собой небольшой блок памяти для некоторого процесса, содержащий элементы, которые использовались недавно. При каждом использовании элемента он копируется в кэш-память. Если кэш заполнен, при удалении элементов применяется алгоритм с удалением наиболее давно использованных элементов (least recently used, LRU), по которому элемент, который давно не использовался, замещается недавно использованным элементом. Таким образом, кэш-память содержит несколько близких в пространственном смысле элементов, которые, помимо всего прочего, близки и в смысле времени их использования.
Обычно кэш-память применяется для элементов, которые хранятся на медленных устройствах. В качестве классического примера можно привести дисковый кэш. Тем не менее, теоретически кэш виртуальной памяти мог бы работать точно таким же образом, особенно с приложениями, которые требуют большого объема памяти и используются на вычислительных машинах с небольшими объемами ОЗУ.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Псевдоклассы ссылок
Псевдоклассы ссылок Обычно браузеры пользователей по-разному отображают просмотренные и непросмотренные ссылки. В CSS предусмотрены псевдоклассы: link и: visited для различения этих типов ссылок и задания им своего стиля:•:link – применяется, если ссылка не была
Проверка ссылок
Проверка ссылок В разделе Подготовка
Счетчики ссылок
Счетчики ссылок Одно из главных свойств, которое реализуется с помощью объектов kobject, — это унифицированная система поддержки счетчиков ссылок. После инициализации количество ссылок на объект устанавливается равным единице. Пока значение счетчика ссылок на объект не
Покупка ссылок
Покупка ссылок Стоимость ссылочного продвижения напрямую зависит от конкурентности и частотности запросов, под которые оптимизируется каждая конкретная страница сайта. На стадии формирования семантического ядра нужно понимать, что высокочастотные запросы обойдутся
Проверка ссылок
Проверка ссылок До начала рекламной кампании стоит убедиться в том, что в текстах страниц, размещенных на сайте, нет технических ошибок. К таковым относятся неправильно расставленные ссылки, отсутствие каких-либо файлов и собственно погрешности в HTML-коде, а также
Создание ссылок
Создание ссылок А создаются ссылки при формировании веб-страницы очень просто. Для этого существует специальный тег <A>, имеющий свой закрывающий тег </A>. Примечание Напомню, что в сайтостроении можно набирать теги как прописными (заглавными) буквами: <A>, так и
Виды ссылок
Виды ссылок Ссылки могут быть как относительными, связывающими две странички одного сайта, — например так:? <a href="info.html">Информация о сайте</a>? <a href="catalog.html">Каталог продукции</a>? <a href="gest.html">Отзывы покупателей</a>Само собой, что все HTML-файлы (странички) сайта
О закупке ссылок
О закупке ссылок Без мощного ссылочного ранжирования портал не продвинуть, и, откровенно говоря, нельзя продвинуть портал, не закупая ссылок. Однако невозможно добиться хороших результатов только таким способом. Хотя многие пытаются.Приведу пример: ко мне обратился
Покупка ссылок
Покупка ссылок Сейчас покупка ссылок является наиболее популярным и быстрым способом набора ссылочной массы, однако это вовсе не означает, что она идеальна. На самом деле у нее есть как неоспоримые достоинства, так и серьезные недостатки.Достоинства покупки ссылок:?
Таблица ссылок
Таблица ссылок Это аналог списка литературы, но для юридических источников, прав и законов.Выделяете текст, помечаете его как ссылку, отмечаете, на что именно указывает эта ссылка: на закон, статью и т. д.А потом кнопкой Таблица ссылок вы можете вставить в свой документ
R.4.7 Преобразования ссылок
R.4.7 Преобразования ссылок Всюду, где ссылки (§R.8.2.2) инициализируются (включая передачу параметров (§R.5.2.2) и возврат значения функции (§R.6.6.3)) или используются иным образом, возможны следующие преобразования:Ссылка на данный класс может быть преобразована в ссылку на
Подсчет ссылок
Подсчет ссылок При описании STL практически невозможно обойти стороной подсчет ссылок. Как будет показано в советах 7 и 33, любая архитектура, основанная на контейнерах указателей, практически всегда основана на подсчете ссылок. Кроме того, подсчет ссылок используется во
6.8 Преобразования Ссылок
6.8 Преобразования Ссылок Везде, где инициализируются ссылки, может выполняться следующее преобразование.Ссылка на класс может преобразовываться в ссылку на отрытый базовый класс этого класса, см.
Сравнение ссылок
Сравнение ссылок Наряду с присваиванием возникает необходимость и в тесте - проверить, присоединены ли две ссылки к одному и тому же объекту. Для этого есть оператор эквивалентности =.Если x и y - сущности ссылочного типа, то выражение:x = yистинно тогда и только тогда, когда
Подсчет ссылок
Подсчет ссылок Простая идея лежит в основе первого метода управления памятью - подсчета ссылок. Каждый объект хранит текущее число сделанных на него ссылок. Когда оно становится равным нулю, объект можно утилизировать.Это решение не сложно для реализации на уровне языка.