다음을 통해 공유


Free 함수

동시 런타임의 캐싱 하위 할당기에 대해 Alloc 메서드가 이전에 할당한 메모리 블록을 해제합니다.

_CRTIMP void __cdecl Free(
   void * _PAllocation
);

매개 변수

  • _PAllocation
    해제될 Alloc 메서드에 의해 할당된 메모리에 대한 포인터입니다. 매개 변수 _PAllocation이 값 NULL로 설정된 경우 이 메서드는 이를 무시하고 즉시 반환합니다.

설명

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

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

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

요구 사항

헤더: concrt.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

Alloc 함수