[...]은 일반 목적 연산자 (new 및 delete)가 작은 객체를 할당하는 데 잘못 수행한다고 주장합니다.
플랫폼에 따라 다릅니다. 예 : 리눅스에서는 정적 인 메모리 관리와 red-black 트리 인 GNU의 std :: map과 완전히 동적 인 메모리 관리를 사용하여 내 자생 AVL 트리를 벤치 마크했습니다. 놀랍게도, std :: map은 종종 구현과 매우 유사합니다. 그리고 std :: map은 위험한 양의 작은 메모리 할당을합니다.
내 프로그램에는 무료 저장소에서 많은 개체가 만들어지고 파괴되었습니다.
메모리 관리 문제는 유효합니다. 가능한 경우 기존 리소스를 재사용하거나 임시 복사본을 만들지 않도록 항상 노력해야한다는 의미입니다.
효율성/CPU 성능이 우수합니다. 코드가 거의 실행되지 않으면 신경 쓸 필요가 없습니다.
이 개체는 8000 바이트 이상을 측정합니다. 어떤 크기가 작은 것으로 간주됩니까? C++로 메모리를 할당 할 때 8000 바이트가 작거나 크지 않습니까?
이것은 무의미한 질문입니다. 당신의 프로그램이 8K를 취하는 객체를 필요로한다면, 당신의 프로그램은 그것을 필요로한다. 기간.
소프트웨어가 메모리 관리에서 성능 병목 현상에 너무 많은 RAM 또는 Profiler를 사용한다는 불만이있는 경우에만 걱정해야합니다. 그렇지 않으면 현대의 메모리 관리가 비교적 빠르고 강력합니다.
P. 저는 개인적으로 8K를 평균 메모리 할당 크기라고 생각합니다. 작지 않고 크지 않습니다. 하지만 저는 이미 힙에 10 + GB를 할당하는 프로그램을 사용하는 데 익숙합니다. 데이터 세트가 RAM에 있어야하고 크기가 10GB라면 잘 응용 프로그램은 선택의 여지가 있지만로드하려고합니다.
구현에 따라 다릅니다. – kennytm
개체가 개별적으로 8000 바이트를 측정합니까, 아니면 누적 적으로 측정합니까? @KennyTM은 구현에 의존한다고 말하지만 객체 당 8000 바이트에는 그 객체가 작은 –
@ Jared P로 간주되는 실제 구현이 많지 않으며 각 객체 측정은 8000 바이트 이상입니다. 내 프로그램은 Windows 및 Linux 서버 시스템에서 매우 잘 실행되어야합니다. –