메모리 벤치마크
브라우저에서 타입 배열 할당 및 읽기/쓰기 처리량을 측정하고, 브라우저가 실제로 노출하는 메모리 수치를 확인하세요.
Browser-reported memory
navigator.deviceMemory
Not exposed by this browser
JS heap (performance.memory)
Not exposed by this browser
Chromium browsers round deviceMemory to one of 0.25, 0.5, 1, 2, 4 or 8 GB, and it can be lower than your real RAM. Firefox and Safari do not expose either figure, which is normal and not a bug.
Throughput benchmark
Allocates and reads/writes typed arrays in JavaScript to estimate practical memory speed.
메모리 벤치마크 사용 빠른 가이드
1분 이내 소요- 1브라우저가 자유롭게 할당할 수 있도록 메모리를 많이 사용하는 탭을 닫으세요.
- 2벤치마크를 실행하고 모든 단계가 완료되도록 하세요.
- 3할당, 읽기 및 쓰기 처리량을 개별적으로 확인하세요.
- 4보고된 힙 제한은 총 RAM이 아닌 브라우저 제한입니다.
개요
메모리 속도는 CPU 클럭 속도나 GPU 모델만큼 주목받지 못하지만, 컴퓨터가 하는 모든 작업에 조용히 영향을 미칩니다. 프로세서가 실행하는 모든 명령은 결국 어딘가에서 데이터를 읽거나 써야 하며, 데이터가 느린 메모리를 통과해야 한다면 빠른 CPU도 결국 기다리게 됩니다. 이 테스트는 JavaScript가 메모리를 얼마나 빠르게 할당하고 데이터를 이동시킬 수 있는지 브라우저 기반으로 보여주며, 특정 브라우저가 노출하고자 하는 모든 메모리 수치를 함께 제공합니다.
이 벤치마크는 JavaScript에서 원시 메모리 블록과 가장 유사한 Float64Array 버퍼와 같은 타입 배열로 작동합니다. 새로운 배열을 얼마나 빨리 할당할 수 있는지, 순서대로 배열에 데이터를 얼마나 빨리 쓸 수 있는지, 동일한 데이터를 순서대로 얼마나 빨리 다시 읽을 수 있는지, 그리고 메모리 접근 패턴이 순차적이지 않고 무작위일 때 이러한 속도가 어떻게 변하는지 등 네 가지 개별적인 작업을 측정합니다.
처리량 수치 외에도 이 페이지는 가능한 경우 브라우저에 노출된 두 가지 수치를 읽어옵니다: 전체 시스템 RAM의 대략적인 근사치인 navigator.deviceMemory와 Chromium 기반 브라우저에서 JavaScript 힙의 현재 및 최대 크기를 보고하는 performance.memory입니다. 이 두 가지 모두 결론을 내리기 전에 이해해야 할 실제적인 한계를 가지고 있습니다.
결과 확인 방법
할당 처리량
이것은 브라우저가 새로운 배열을 위해 메모리에서 초당 몇 메가바이트를 할당할 수 있는지를 측정합니다. 이는 순수 하드웨어만큼이나 JavaScript 엔진의 메모리 관리자와 가비지 컬렉터의 영향을 받으므로, 여기서의 차이는 RAM 칩 자체보다 브라우저에 대해 더 많은 것을 말해주는 경우가 많습니다.
순차 접근 대 무작위 접근
순차 읽기 및 쓰기 수치는 무작위 읽기 및 쓰기 수치보다 현저히 높아야 하며, CPU 캐시가 작동하는 방식 때문에 모든 컴퓨터에서 이러한 차이는 정상적이고 예상되는 일입니다. 순차 속도와 무작위 속도 간의 매우 작은 차이는 문제가 아니라 메모리 크기에 비해 매우 빠른 프로세서 캐시를 나타낼 수 있습니다.
deviceMemory 및 힙 수치
navigator.deviceMemory는 정확한 RAM 수치라기보다는 대략적인 등급 지표로 취급하십시오. Chromium은 실제로 설치된 RAM 양과 관계없이 이를 8GB로 제한합니다. JS 힙 수치는 현재 이 특정 브라우저 탭에 할당된 것을 반영하며, 페이지와 도구가 실행됨에 따라 증가할 것입니다. 이는 메모리 누수가 아니라 예상되는 동작입니다.
문제 해결
deviceMemory 또는 힙 수치가 '노출되지 않음'으로 표시됨
이것은 개인 정보 보호상의 이유로 이러한 API를 전혀 구현하지 않는 Firefox 및 Safari에서는 예상되는 일입니다. 이 수치들을 특별히 확인해야 한다면 Chrome, Edge, Brave 또는 다른 Chromium 기반 브라우저로 전환하십시오.
처리량 수치가 비정상적으로 낮아 보입니다
다른 메모리 사용량이 많은 탭, 특히 대용량 이미지, 비디오 또는 동일한 사이트에서 여러 탭이 열려 있는 탭을 닫으십시오. 이러한 탭은 동일한 JavaScript 힙 공간 및 물리적 RAM을 두고 경쟁하기 때문입니다. 단순히 탭을 닫는 것보다 브라우저를 완전히 다시 시작하면 속도를 저하시킬 수 있는 누적된 메모리 조각화를 제거할 수 있습니다.
테스트 중에 브라우저 탭이 충돌하거나 응답하지 않았습니다
이는 벤치마크가 타입 배열을 실행하기 위해 수백 메가바이트의 여유 공간을 필요로 하므로, 여유 RAM이 거의 없는 장치에서 발생할 수 있습니다. 다른 애플리케이션과 탭을 닫아 메모리를 확보한 다음, 동시에 실행되는 항목 수를 줄여서 다시 시도하십시오.
브라우저가 의도적으로 숨기는 것과 그 이유
정확한 RAM 용량이 다른 신호와 결합되면 특정 장치 모델을 파악할 수 있기 때문에, 상세한 메모리 정보는 장치 지문 인식에 사용될 수 있습니다. 이 때문에 어떤 브라우저도 기가바이트 단위의 정확한 RAM, MHz 단위의 정확한 메모리 속도 또는 메모리 채널 구성을 노출하지 않습니다. Chrome은 deviceMemory를 6가지 넓은 범위로 반올림하여 절충하고, Firefox와 Safari는 추적에 사용될 위험을 무릅쓰기보다는 API를 완전히 제거했습니다.
이는 브라우저 기반 메모리 테스트가 설치된 RAM의 정확한 용량을 확인하는 데 Task Manager, Activity Monitor 또는 제조업체의 시스템 정보 패널과 같은 도구를 완전히 대체할 수 없다는 것을 의미합니다. 대신, 이 테스트는 실제 처리량을 측정하고, 브라우저 간 또는 RAM 스틱 추가나 더 빠른 메모리 키트로의 업그레이드와 같은 하드웨어 변경 후 처리량을 비교하는 데 유용합니다.
메모리가 실제로 병목 현상일 때
여러 브라우저 탭이나 애플리케이션을 동시에 열었을 때 컴퓨터가 특히 느리게 느껴지고, 일부를 닫은 후에 속도가 빨라진다면, 이는 속도가 아닌 메모리 용량이 제약 요인이라는 전형적인 신호입니다. 반대로 적은 수의 항목만 열려 있어도 모든 것이 느리게 느껴지고, 이 벤치마크의 처리량 수치가 유사한 하드웨어의 일반적인 수치보다 현저히 낮다면, 이는 RAM이 정격보다 느린 모드로 실행되는 것과 같은 메모리 속도 또는 구성 문제일 가능성이 더 큽니다.
- 이 브라우저 테스트뿐만 아니라 OS의 시스템 정보 패널에서 설치된 RAM 용량과 속도를 확인하십시오.
- 백그라운드 애플리케이션을 닫기 전과 후의 이 테스트 수치를 비교하십시오.
- 다른 병목 현상을 배제하려면 이 테스트를 이 사이트의 CPU 및 저장 장치 벤치마크와 함께 사용하십시오.
자주 묻는 질문
웹사이트가 실제로 RAM 속도를 측정할 수 있나요?
웹사이트는 JavaScript가 타입 배열을 얼마나 빨리 할당하고 접근할 수 있는지를 측정할 수 있으며, 이는 실제 메모리 속도와 관련이 있지만 JavaScript 엔진, 가비지 컬렉터 및 CPU 캐시 동작으로 인한 오버헤드도 포함합니다. 이는 전용 하드웨어 진단 소프트웨어에서 얻을 수 있는 실험실 수준의 메모리 대역폭 테스트가 아니라 유용한 실용적인 측정치입니다.
navigator.deviceMemory가 실제 RAM보다 낮은 수치를 표시하는 이유는 무엇입니까?
Chromium 기반 브라우저는 개인 정보 보호 조치로 이 값을 소수의 숫자(0.25, 0.5, 1, 2, 4, 또는 8GB) 중 하나로 의도적으로 반올림하고 제한하므로, 32GB RAM 시스템에서도 최대 8GB로 보고됩니다. 이는 의도적인 것이며 문제가 있다는 신호가 아닙니다.
Firefox 또는 Safari는 deviceMemory 또는 performance.memory를 전혀 표시하지 않는 이유는 무엇입니까?
두 브라우저 모두 이러한 API를 구현하지 않기로 선택했습니다. 이는 주로 상세한 메모리 정보가 여러 사이트에서 사용자를 핑거프린팅하거나 추적하는 데 사용될 수 있다는 우려 때문입니다. 이 정보가 필요하면 Chrome, Edge 또는 다른 Chromium 기반 브라우저에서 표시될 것입니다.
이 테스트에서 볼 수 있는 일반적인 읽기/쓰기 속도는 어느 정도입니까?
이 테스트는 물리적 RAM 칩 대역폭을 직접 측정하는 것이 아니라 힙(on-heap) 배열 접근을 측정하므로, 최신 하드웨어에서는 수천 MB/s 초반의 순차 읽기 및 쓰기 속도가 일반적입니다. 무작위 접근 속도는 CPU 캐시 미스로 인해 순차 속도보다 현저히 낮은 것이 일반적이며, 이는 예상되는 현상이지 결함이 아닙니다.
무작위 접근이 순차 접근보다 느린 이유는 무엇입니까?
CPU는 캐시 라인 크기 단위로 메모리를 읽고 순차 패턴을 잘 예측하므로, 연속적인 메모리 주소는 캐시에서 빠르게 로드됩니다. 무작위로 분산된 주소는 이러한 예측을 방해하고 더 느린 메인 메모리로 더 많은 접근을 강제하며, 이는 브라우저의 제한 사항이 아니라 컴퓨터 메모리 계층의 기본적인 특성입니다.
다른 브라우저 탭을 닫으면 점수가 향상됩니까?
예, 특히 이미 많은 양의 데이터를 메모리에 보관하고 있는 탭들은 동일한 물리적 RAM을 놓고 경쟁하며 테스트 중에 가비지 컬렉션(garbage collection) 일시 중지를 강제할 수 있기 때문에 더욱 그렇습니다. 벤치마크를 실행하기 전에 관련 없는 탭을 닫으면 더 깔끔하고 반복 가능한 결과를 얻을 수 있습니다.
performance.memory.jsHeapSizeLimit은 실제로 무엇을 의미합니까?
이는 시스템의 전체 RAM이 아니라 JavaScript 엔진이 이 페이지에 허용할 최대 힙(heap) 크기입니다. 이 크기를 초과하면 엔진이 적극적으로 가비지 컬렉션을 시작하거나 메모리 부족 오류를 발생시킵니다. 이는 탭당 안전 제한이므로, 실제 물리적 RAM이 훨씬 많은 기기에서도 일반적으로 몇 기가바이트 수준입니다.
제 할당 처리량(allocation throughput) 수치가 실행할 때마다 일관성이 없어 보입니다. 왜 그렇습니까?
가비지 컬렉션(Garbage collection) 타이밍은 완벽하게 예측할 수 없습니다. 따라서 측정된 할당 루프 중에 컬렉션 주기가 실행되면 해당 실행에서는 처리량이 낮게 나타납니다. 벤치마크를 두세 번 실행하고 단일 이상치보다는 일반적인 결과를 보면 더 신뢰할 수 있는 그림을 얻을 수 있습니다.
이 테스트로 제 RAM이 불량인지 알 수 있습니까?
확실하지 않습니다. 이 벤치마크는 처리량과 속도 추세를 측정하지만, 불량 RAM을 감지하려면 브라우저 외부에서 실행되고 모든 메모리 주소를 직접 확인하는 memtest86과 같은 철저한 비트 패턴 테스트 도구가 필요합니다. 하드웨어 결함이 의심된다면 전용 메모리 진단 도구를 사용하십시오.
RAM이 많을수록 항상 더 좋은 점수를 의미합니까?
직접적이지는 않습니다. 이 테스트는 거의 모든 최신 장치에서 사용 가능한 범위 내에서 고정된 적당한 양의 메모리를 할당하므로, 총 용량보다는 접근 속도를 측정합니다. 전체 RAM은 적지만 메모리 칩이 더 빠른 장치가 RAM은 많지만 칩이 느린 장치보다 더 높은 점수를 얻을 수 있습니다.