内存管理函数

本文档描述了并发运行时提供的内存管理函数如何帮助您以并发方式分配和释放内存。

提示

并发运行时提供默认的计划程序,因此您不需要在应用程序中再创建一个计划程序。由于任务计划程序可帮助您优化应用程序的性能,因此,如果您初次接触并发运行时,则建议您先使用 并行模式库 (PPL)异步代理库

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

备注

AllocFree 函数相互依赖。Free 函数仅用于释放使用 Alloc 函数分配的内存。同样,当使用 Alloc 函数分配内存时,只能使用 Free 函数释放该内存。

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

备注

在使用这些内存管理函数,并且您的应用程序使用许多内存时,应用程序可能比预期更早地出现内存不足情况。由于一个线程缓存的内存块不可用于其他任何线程,因此如果一个线程占有大量内存,则该内存不可用。

示例

有关使用 AllocFree 函数来提高内存性能的示例,请参见如何:使用 Alloc 和 Free 提高内存性能

请参见

任务

如何:使用 Alloc 和 Free 提高内存性能

概念

任务计划程序(并发运行时)