RAM 용량을 어떻게 계산하나요?

RAM 용량을 어떻게 계산하나요?

malloc저는 동적으로 할당된 메모리 ( realloc및 ) 에 대해 알아보기 위해 간단한 C++ 프로그램을 실행하고 있습니다 free.

내 코드의 일부는 다음과 같습니다.

void *p = malloc(10); // Allocates 10 bytes in memory; `p` is a pointer to the first byte.

cout << "The value of the pointer p is:      " << p << endl;

그러면 다음과 같이 출력됩니다.

The value of the pointer p is: 0x7fbf36c00080

p나는 16진수 숫자가 이 할당의 첫 번째 메모리 위치인 가 가리키는 메모리 위치라는 것을 알고 있습니다 .

대략적으로 RAM이 얼마나 있는지 계산하려고 할 때 해당 16진수(12자리)의 자릿수를 보고 16을 제곱했습니다.

16^12는 대략 2.8x10^14와 같고 각 메모리 위치는 바이트를 저장하므로 RAM이 8GB라는 것을 알고 있음에도 불구하고 약 280테라바이트의 RAM이 있음을 의미합니다.

내 계산에서 어디가 잘못됐나요?

답변1

의 개념을 공부해야 합니다. 가상 메모리, 물리적 메모리가 프로세스의 주소 공간에 매핑된다는 것을 이해합니다.

64비트 프로세스에 최대 2 64 -1까지의 포인터가 있을 수 있다는 사실이 이 메모리가 모두 존재한다는 의미는 아닙니다. 포인터는 다음을 가리킨다. 메모리 세그먼트 이는 컴퓨터 어딘가의 물리적 메모리에 매핑됩니다.

운영 체제만이 실제로 얼마나 많은 메모리를 가지고 있는지 알고 있으므로 해당 양을 검색하려면 해당 API를 사용해야 합니다.

내 첫 번째 Wikipedia 링크에 설명된 대로:

여기에 이미지 설명을 입력하세요

관련 정보