内存管理函数

该文档介绍并发运行时提供的内存管理函数,可帮助你以并发方式分配和释放内存。

提示

并发运行时提供了一个默认计划程序,因此无需在应用程序中创建一个。 由于任务计划程序有助于优化应用程序的性能,如果你刚开始接触并发运行时,建议从使用并行模式库 (PPL)异步代理库开始。

并发运行时提供两个内存管理函数,这些函数已经过优化,能以并发方式分配和释放内存块。 concurrency::Alloc 函数通过使用指定的大小来分配内存块。 concurrency::Free 函数释放由 Alloc 分配的内存。

注意

Alloc 函数和 Free 函数是相互依赖的。 仅使用 Free 函数释放通过 Alloc 函数分配的内存。 此外,使用 Alloc 函数分配内存时,仅使用 Free 函数释放该内存。

在从不同的线程或任务分配和释放固定的分配大小时,请使用 AllocFree 函数。 并发运行时会缓存它从 C 运行时堆分配的内存。 并发运行时为每个运行的线程保存单独的内存缓存;因此,运行时无需使用锁或内存屏障即可管理内存。 当内存缓存被更高频率地访问时,应用程序会更受益于 AllocFree 函数。 例如,经常调用 AllocFree 的线程比主要调用 AllocFree 的线程受益更多。

注意

在使用这些内存管理函数且应用程序使用大量内存的情况下,应用程序可能会比预期更快地进入低内存状态。 因为一个线程缓存的内存块无法用于任何其他线程,所以如果某个线程持有大量内存,则该部分内存不可用。

示例

若要获取使用 AllocFree 函数提高内存性能的示例,请参阅如何:使用 Alloc 和 Free 提高内存性能

另请参阅

任务计划程序
如何:使用 Alloc 和 Free 提高内存性能