Alloc 函数

分配通过并发运行时的缓存 Suballocator 指定大小的内存块。

_CRTIMP void * __cdecl Alloc(    size_t _NumBytes );

参数

  • _NumBytes
    要分配的内存的字节数。

返回值

指向新分配的内存的指针。

备注

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

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

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

要求

**标头:**concrt.h

命名空间: 并发

请参见

参考

Concurrency 命名空间

Free 函数