다음을 통해 공유


Alloc 함수

동시성 런타임 캐싱 하위 할당기에서 지정된 크기의 메모리 블록을 할당합니다.

_CRTIMP void * __cdecl Alloc(    size_t _NumBytes );

매개 변수

  • _NumBytes
    할당할 메모리 바이트 수입니다.

반환 값

새로 할당된 메모리에 대한 포인터입니다.

설명

여러 할당을 스레드 수에 따라 작은 블록 크기 집합을 갖는 할당 해제로 분산되게 만들 때 캐싱 하위 할당기를 사용합니다. 하위 할당기는 C 런타임 힙 위의 캐싱 계층입니다. 동시성 런타임은 스케줄러에 있는 가상 프로세서마다 하나의 하위 할당기를 만들고 할당기 메서드를 사용하는 응용 프로그램에서 만드는 스레드마다 하나의 하위 할당기를 만듭니다.

특정 크기 볼록 캐시를 빌드한 후 잠금을 유지하지 않거나 메모리 장벽을 실행해도 할당과 해제가 가능합니다. 블록 크기에 대한 각 하위 할당기의 캐시가 비어 있는 경우 할당은 힙에서 이루어지며 캐시가 블록 크기에 대한 특정 크기에 도달한 경우 블록은 C 런타임 힙으로 해제됩니다.

응용 프로그램이 더 많은 메모리를 사용하는 경우 캐싱 하위 할당기를 사용할 때 예상하는 것보다 빨리 메모리가 부족해지는 것을 발견할 수 있습니다. 그 이유는 한 하위 할당기에서 캐시된 블록을 다른 곳에서 사용할 수 없고 특정 스레드가 특정 지점에서 액세스하지 못하는 하위 할당기에 캐시된 메모리 양이 많이 있을 수 있기 때문입니다.

요구 사항

헤더: concrt.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

Free 함수