_amblksiz

Приращение указателя разрыва

Прототип:

#include <stdlib.h>
unsigned int _amblksiz

Описание:

Глобальная переменная _amblksiz - основной элемент, используемый для выделения памяти в куче с использованием mmap(). Все базовые операции mmap(), выполняемые при выделении памяти в куче, получают память, кратную _amblksiz. По умолчанию _amblksiz устанавливается в 8 × PSIZ, или 32 KB. Значение должно быть кратно 4 KB и на данный момент ограничено 256 KB.

В текущей реализации выделения памяти запрос на выделение памяти больше, чем в 32 KB автоматически обрабатываются прямым вызовом mmap(), в то время как меньшие размеры обрабатываются механизмом разделения-объединения выделения памяти.

Значение _amblksiz влияет на любое выделение памяти, не превышающее 32 KB и требующее от ядра выделения памяти. Освободившаяся память в итоге вернется в систему, когда вся память, связанная с определенным выделением ядра, будет возвращена аллокатору. Несмотря на то, что блок может быть полностью возвращен аллокатору, аллокатор может в целях повышения эффективности сохранить локально некоторые блоки в куче (без немедленного возвращения памяти системе). Это позволяет избежать перебоев, когда аллокатор постоянно запрашивают о выделении и освобождении памяти в системе.

Есть несколько путей изменить значение _amblksiz:

Классификация:

ЗОСРВ «Нейтрино»

Тематические ссылки:

malloc(), mallopt(), mmap()




Предыдущий раздел: Описание API системной библиотеки