Функции управления памятью

В этом документе описываются функции управления памятью, которые среда выполнения параллелизма предоставляет для одновременного выделения и освобождения памяти.

Совет

Среда выполнения с параллелизмом предоставляет планировщик по умолчанию, и таким образом не требуется создавать планировщик в приложении. Так как планировщик задач помогает точно настроить производительность приложений, рекомендуется начать с библиотеки параллельных шаблонов (PPL) или библиотеки асинхронных агентов, если вы не знакомы со средой выполнения параллелизма.

Среда выполнения параллелизма предоставляет две функции управления памятью, оптимизированные для выделения и освобождения блоков памяти одновременно. Функция параллелизма::Alloc выделяет блок памяти с помощью указанного размера. Функция параллелизма::Free освобождает память, выделенную Alloc.

Примечание.

Free Функции Alloc зависят друг от друга. Free Используйте функцию только для освобождения памяти, выделяемой Alloc с помощью функции. Кроме того, при использовании Alloc функции для выделения памяти используйте только Free функцию для освобождения этой памяти.

AllocFree Используйте функции при выделении и освобождении фиксированного набора размеров выделения из разных потоков или задач. Среда выполнения параллелизма кэширует память, выделенную из кучи среды выполнения C. Среда выполнения параллелизма содержит отдельный кэш памяти для каждого работающего потока; Таким образом, среда выполнения управляет памятью без использования блокировок или барьеров памяти. Приложение использует больше возможностей Alloc и Free функций, когда к кэшу памяти обращаются чаще. Например, поток, который часто вызывает оба Alloc и Free преимущества, чем поток, который в основном вызывает Alloc или Free.

Примечание.

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

Пример

Пример использования Alloc и Free функций для повышения производительности памяти см. в статье "Практическое руководство. Использование alloc и free для повышения производительности памяти".

См. также

Планировщик заданий
Практическое руководство. Использование функций Alloc и Free для повышения производительности операций с памятью