Processor and graphics card specifications are live

·Guides

6 min read

Memory latency vs bandwidth: what a random-walk test shows

SystemCheck Updated 29 October 2026

Bandwidth is how many bytes per second the memory system moves when the processor can ask for many at once. Latency is how long a single load waits when the next one cannot start until it returns.

  • SystemCheck measures latency with a random walk: each step reads an address that the previous step told it, so the processor cannot fetch ahead.
  • The walk runs through 64 MiB, far past any cache, and again through 128 KiB, which stays in cache, so the report shows memory and cache side by side.
  • A browser cannot see the number of channels, the memory clock, its timings or its capacity, and SystemCheck does not claim them.

Two questions about the same memory

Bandwidth answers how much data the memory system can move per second when the work allows many requests to be in flight together. Copying a large buffer, streaming a video frame or scanning a big array are bandwidth work: the processor knows the next addresses in advance and asks for them early.

Latency answers how long one request takes when nothing can be overlapped. Following a linked list, walking a tree or looking up a hash table entry that points at the next one are latency work: each load needs the result of the previous one before it can start.

A machine can be strong on one and weak on the other, and the two respond to different things, which is why SystemCheck reports both instead of folding them into one memory figure.

How the random walk measures latency

One worker builds a 64 MiB array holding a single random cycle through every slot (Sattolo's algorithm), then follows it: read a slot, jump to the index stored there, read that slot, and so on. Every load depends on the one before, so the processor cannot prefetch or run them side by side. The time per step is the round trip to memory, including the cost of address translation misses on a working set that large.

The same walk through a 128 KiB array stays inside the cache, and its time per step is shown beside the memory figure for contrast. The gap between the two is what a cache miss costs on that machine, as a browser can see it.

How bandwidth is measured

Each worker owns two 24 MiB arrays and copies one into the other over and over, which the JavaScript engine turns into a plain memory copy. At 48 MiB per worker the working set is far past any last-level cache, so the bytes per second describe the memory system rather than the cache. Bandwidth is measured on one thread first and then on several; the guide on single-thread and all-thread bandwidth explains why both are kept.

Windows of the bandwidth run that overlap a hidden tab or an unfocused window are left out, because a browser slows a background page down and the figure would then describe the browser, not the memory. The latency walks are not windowed and are not affected.

What these figures cannot tell you

A web page has no access to the memory's specification. SystemCheck cannot read how many channels are populated, the memory clock, the timings or how much memory is installed, and it does not estimate them. The browser sandbox also adds overhead of its own, so the figures compare between runs on the same machine, and between machines measured with this tool, but not against a memory kit's rated numbers or another program's results.

If the figures surprise you, a native tool that reads the memory's configuration is the next step. The browser figure tells you how the memory behaved; the native tool tells you how it is set up.

Terms used here

Questions

Is lower latency or higher bandwidth more important?
It depends on the work. Large streaming jobs lean on bandwidth; work that follows pointers from one value to the next leans on latency. SystemCheck reports both and does not combine them into one memory figure for that reason.
Why does the latency figure look higher than my memory kit's rating?
A rated latency describes the memory chips alone. The walk measures a whole round trip from a browser worker, including address translation and the sandbox's overhead, so it is not comparable with a rated figure. Compare it with other runs measured the same way.
Can SystemCheck tell whether I am running in dual channel?
No. A browser cannot read the channel count. A low all-thread bandwidth that barely rises over one thread is worth checking in a native tool, but the browser figure alone does not prove how the memory is installed.