Free 函数

释放先前通过 Alloc 方法分配给并发运行时的缓存子分配器的内存块。

_CRTIMP void __cdecl Free(
   void * _PAllocation
);

参数

  • _PAllocation
    指向以前由要释放的 Alloc 方法分配的内存的指针。 如果形参 _PAllocation 设置为值 NULL,此方法将忽略该形参并立即返回。

备注

当希望在大量线程上使用小组块大小进行数个与取消分配交错的分配时,使用缓存子分配器。 子分配器是 C 运行时堆之上的缓存层。 并发运行时为计划程序中的每个虚拟处理器创建子分配器,并为由使用分配器方法的应用程序创建的每个线程创建一个子分配器。

已生成某些大小块的缓存后,无需持有锁或甚至执行内存屏障即可进行分配和释放。 如果块大小的每个子分配器中的缓存为空,那么将从堆进行分配,如果缓存达到了特定块大小,那么这些块将释放到 C 运行时堆。

如果您的应用程序使用大量内存,您可能会发现您很快会耗尽内存,比您预期的还要快,除非使用了缓存子分配器。 这是因为缓存在一个子分配器中的块对于另一个不可用,并且在子分配器中可能缓存大量内存,对于这些子分配器特定线程在特定点没有访问权限。

要求

**标头:**concrt.h

命名空间: 并发

请参见

参考

Concurrency 命名空间

Alloc 函数