0
힙 메모리에 저장된 데이터에 액세스하는 데 메모리가 자주 재 할당 될 때 실제로 속도가 느려지는 문제가 발생했습니다. 이 동작을 설명 할 수있는 어떤정적/스택과 힙 메모리 간의 주요 속도 차이
에
비교?
힙 메모리에 저장된 데이터에 액세스하는 데 메모리가 자주 재 할당 될 때 실제로 속도가 느려지는 문제가 발생했습니다. 이 동작을 설명 할 수있는 어떤정적/스택과 힙 메모리 간의 주요 속도 차이
에
비교?
페이지 폴트 문제 일 수 있습니다. RAM의 큰 블록을 malloc하면 물리적 RAM이 곧바로 할당되지 않고 일부 페이지 테이블 항목이 설정됩니다. 물리적 RAM은 처음 위치에 액세스 할 때까지 할당되지 않습니다. 이
를 업데이트 해당 페이지
왜 더 많은 페이지가 있어야합니까? 내가 블록을 더 자주 재 할당 할 때? iPad L2 캐시는 1MB이므로 정적/스택 메모리에도 페이지 오류가 발생해야합니다. 그리고 zeroing 인수는 호출 된 메모리에만 해당됩니다. Malloc은 메모리를 0으로 만들지 않습니다. 귀하의 게시물에 대한 자세한 설명을 추가해주십시오. – Etan
@Etan : 아마 같은 메모리 블록을 재사용하지 않거나 할당 해제시 메모리를 OS에 돌려 주었을 것입니다 (메모리는 iDevices에서만 제한되어 있으므로 이것이 가능합니다). 정적 메모리는 영구적으로 할당되며 스택 메모리는 처음 사용되면 영구적으로 할당됩니다. – JeremyP
기본적으로 지연 할당은 여기에서 나를 죽입니다. 또한 calloc이 memset 또는 {0} 이니셜 라이저보다 훨씬 빠른 이유를 설명합니다. 이전 페이지가 재사용되는 경우에도 프리 콜 후에 페이지가 더러 워지기 때문에 매번 동일한 메모리 블록을 사용하는지 여부는 페이지 폴트 수를 변경해서는 안됩니다. – Etan