Пятница, 22/Ноября/2024, 19:47:25Главная | | Регистрация | ВходЗдраствуйте Гость | RSS



   10.12.2011 |Обратите внимание на розыгрыш футболок в разделе "халява для России"
   19.12.2011 |После долгого отсутствия на сайте вновь открывается форум"

Меню



Категории


Поиск


Онлайн


Друзья


Форум

Главная » 2015 » Октябрь » 30 » Описанный алгоритм
Описанный алгоритм
13:04:56

Выделения памяти является весьма простым и быстрым. Его основным отличием от предыдущего является отсутствие необходимости длительного поиска в карте ресурсов и решение проблемы фрагментации области памяти. При использовании буферов нижний предел производительности всегда ограничен. Распределитель памяти предоставляет понятный программный интерфейс, важнейшим преимуществом которого является процедура free(), в качестве входного аргумента которой больше не нужно задавать размер буфера. В результате этого выделенный буфер может передаваться другим функциям или подсистемам, а также освобождаться, и для этого достаточно использовать всего указатель на него. С другой стороны, интерфейс не позволяет клиенту освобождать буферы частично.

В алгоритме имеется несколько значимых недостатков. Округление количества запрошенной памяти кверху до следующей степени двойки часто приводит к реальному использованию лишь части буфера, что в результате влечет неэкономное распределение памяти. Проблема становится еще более очевидной из-за необходимости хранения заголовков буферов внутри самих выделенных буферов. Многие запросы требуют объемов памяти, уже равных степени числа 2. Удовлетворение таких запросов имеет следствием почти 100%-ную потерю выделяемых участков памяти, так как чтобы поместить заголовок в буфер (а это всего 4 байта), распределитель округлит необходимое количество байтов до следующей степени двойки. Например, в ответ на просьбу о предоставлении 512 байтов памяти будет выделено уже 1024 байта.

Технология не поддерживает слияния смежных буферов, что позволило бы удовлетворить запросы на выделение областей памяти большей протяженности. Размер каждого буфера остается неизменным в течение его периода жизни. Большие буферы иногда можно использовать для удовлетворения запросов на области памяти малой длины. Несмотря на то, что некоторые реализации алгоритма позволяют «заимствовать» часть памяти у страничной системы, не существует механизма обратной передачи таких буферов после освобождения.

И хотя алгоритм степени двойки намного быстрее работы с картой ресурсов, его производительность может быть поднята еще больше.

Категория: Обзоры сайтов | Просмотров: 554 | Добавил: alya1521 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:

Профиль


 
на форуме отдельная регистрация


Реклама

 
Дайджест

 
 Design by skelet © 2009 Dle Club
Сайт управляется системой uCoz