SystemCheck measures memory bandwidth twice: on one thread for 5 seconds, then on up to six threads for 8 seconds.
- The ratio of the two, all-thread over single-thread, is shown as scaling. Near 1 means the extra threads found no more bandwidth to use.
- One thread rarely fills a modern memory system on its own, so a single-thread figure well below the all-thread one is ordinary.
- The figures compare between runs measured with this tool, not with a memory kit's rated bandwidth.
Why measure twice
A single thread copying a large buffer is limited by how many requests one core can keep in flight. Several threads copying at once can keep more requests in flight, until the memory system itself is the limit. Measuring both shows where that limit sits on the machine in front of you.
SystemCheck runs the single-thread copy for 5 seconds and then the multi-thread copy for 8 seconds. The multi-thread phase uses one worker per logical processor, up to six. Each worker copies between two 24 MiB arrays, 48 MiB per worker, so the data never fits in cache.
Reading the scaling figure
Scaling is the all-thread figure divided by the single-thread figure. A value well above 1 means the extra threads found more bandwidth. A value near 1 means adding threads bought nothing: the memory system was already saturated by one thread, or something else was holding it back.
SystemCheck shows scaling as information and does not score it. It has no population data yet to say what scaling a given class of machine should reach, so it does not print a typical value.
What the figures leave out
Windows that overlap a hidden tab or an unfocused window are dropped from both figures, because a browser slows a background page and its workers may be moved to efficiency cores. The report says how much time was left out.
A browser cannot read the memory configuration, so a low scaling figure is a reason to look, not a finding. A native tool can show whether the memory runs in the configuration you expect. The browser figure is best used to compare the same machine before and after a change, measured the same way.
Terms used here
Questions
- Why only up to six threads?
- Six workers at 48 MiB each already move far more data than a cache holds, and the cap keeps the stage short. A machine with fewer logical processors uses one worker per processor.
- My all-thread bandwidth changed between two runs. Is something wrong?
- Not necessarily. Background work competes for the same memory. Each bandwidth figure carries an interval for the spread inside its run; compare two runs only when their conditions match, and repeat before reading anything into a small change.