Поделиться через


Функция Alloc

Выделяет блок памяти указанного размера из подраспределителя кэширования среды параллелизма.

_CRTIMP void * __cdecl Alloc(    size_t _NumBytes );

Параметры

  • _NumBytes
    Число байт выделяемой памяти.

Возвращаемое значение

Указатель на только что выделенную память.

Заметки

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

После построения кэша определенных размеров блока, распределения и освобождения возможны без хранения блокировок или даже выполнения барьеров памяти. Если кэш в каждом подраспределителе для размера блока является пустым, выделение производится из кучи и если кэш достиг определенного размера для размер блока, блоки свободны для кучи среды выполнения C.

Если приложение использует большой объем памяти может оказаться, что память кончится быстрее, чем вы ожидали при использовании подраспределителя кэширования. Это происходит потому, что блоки, кэшированные в один подраспределитель, не доступны в другом и может быть большой объем памяти, кэшированный в подраспределителях, к которым определенный поток не имеет доступа в определенный момент.

Требования

Заголовок: concrt.h

Пространство имен: Concurrency

См. также

Ссылки

Пространство имен Concurrency

Функция Free