Namespaces
Variants

std::pmr:: unsynchronized_pool_resource

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
pmr::unsynchronized_pool_resource
(C++17)

Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
헤더 파일에 정의됨 <memory_resource>
class unsynchronized_pool_resource : public std:: pmr :: memory_resource ;
(C++17부터)

클래스 std::pmr::unsynchronized_pool_resource 는 다음과 같은 속성을 가진 범용 메모리 리소스 클래스입니다:

  • 할당된 메모리를 소유하며, 일부 할당된 블록에 대해 deallocate 가 호출되지 않았더라도 소멸 시 메모리를 해제합니다.
  • 서로 다른 블록 크기에 대한 요청을 처리하는 풀(pools) 컬렉션으로 구성됩니다. 각 풀은 균일한 크기의 블록으로 분할되는 청크(chunks) 컬렉션을 관리합니다.
  • do_allocate 호출은 요청된 크기를 수용할 수 있는 가장 작은 블록을 제공하는 풀로 전달됩니다.
  • 풀의 메모리가 고갈되면 해당 풀에 대한 다음 할당 요청이 업스트림 할당자(upstream allocator) 로부터 추가 청크 메모리를 할당하여 풀을 보충합니다. 획득하는 청크 크기는 기하급수적으로 증가합니다.
  • 가장 큰 블록 크기를 초과하는 할당 요청은 업스트림 할당자(upstream allocator) 로부터 직접 제공됩니다.
  • 최대 블록 크기와 최대 청크 크기는 생성자에 std::pmr::pool_options 구조체를 전달하여 조정할 수 있습니다.

unsynchronized_pool_resource 는 스레드 안전하지 않으며, 여러 스레드에서 동시에 접근할 수 없습니다. 여러 스레드에서의 접근이 필요한 경우 synchronized_pool_resource 를 사용하십시오.

멤버 함수

unsynchronized_pool_resource 를 생성함
(public 멤버 함수)
[virtual]
unsynchronized_pool_resource 를 파괴하고 모든 할당된 메모리를 해제함
(virtual public 멤버 함수)
operator=
[deleted]
복사 할당 연산자가 삭제됨. unsynchronized_pool_resource 는 복사 할당이 불가능함
(public 멤버 함수)
Public 멤버 함수
모든 할당된 메모리를 해제함
(public 멤버 함수)
상위 메모리 리소스에 대한 포인터를 반환함
(public 멤버 함수)
이 리소스의 풀링 동작을 제어하는 옵션을 반환함
(public 멤버 함수)
Protected 멤버 함수
[virtual]
메모리를 할당함
(virtual protected 멤버 함수)
[virtual]
메모리를 풀로 반환함
(virtual protected 멤버 함수)
[virtual]
다른 std::pmr::memory_resource 와 동등성 비교를 수행함
(virtual protected 멤버 함수)