Benchmarks

Memory benchmark

The memory benchmark measures your system's RAM performance. It covers how quickly data moves between the processor and memory (bandwidth) and how long the processor waits for data to arrive (latency). These two metrics determine how efficiently your system handles data-intensive workloads.

What the memory test measures

The memory benchmark runs two tests that cover different aspects of RAM performance.

Transfer (bandwidth) test

The transfer test measures how quickly data can be read from and written to RAM in large sequential blocks. Novabench uses streaming (non-temporal) memory operations that bypass the CPU cache. This measures the raw bandwidth of the memory subsystem rather than cache speed. The test writes and reads large buffers repeatedly for a fixed duration and records the maximum throughput achieved across multiple passes.

Bandwidth determines how quickly your system can move large amounts of data. High bandwidth matters for tasks such as video editing, large dataset processing, virtual machines, and any workload that moves significant data between the CPU and memory.

Latency test

The latency test measures how long the processor waits for data at different levels of the memory hierarchy. Novabench uses a pointer-chasing technique. It lays out a randomized linked structure across the test region, then follows each pointer to the next. Because each access depends on the result of the previous one, the CPU cannot hide latency through prefetching or out-of-order execution. The test repeats this over progressively larger memory regions. It profiles access times as the working set overflows each cache level into the next.

The latency profile reveals how your system performs at each level of the cache and memory hierarchy:

  • L1 cache: the fastest and smallest cache, built into each CPU core.
  • L2 cache: larger but slightly slower per-core cache.
  • L3 cache: shared cache across all cores. Access times are higher.
  • Main memory (RAM): the slowest tier, with access times typically from 40 to 100+ nanoseconds, depending on memory type and configuration.

Low latency means your processor spends less time waiting for data, which improves performance in latency-sensitive applications.

How the memory score is calculated

The memory score combines bandwidth, latency, and total system RAM into a single number. The formula weights bandwidth and latency performance heavily. Installed memory has a smaller but measurable effect.

Bandwidth and latency come on different scales (GB/s and nanoseconds). Before it combines them, Novabench applies a per-workload scaling step calibrated against reference hardware. Installed capacity contributes a smaller component to the final score. Enough RAM matters, but more RAM beyond that point yields diminishing returns for most workloads.

Validation

Before each release, Novabench measures memory score consistency across reference hardware and supported platforms. These measurements cover release drift, test variance, and platform alignment.

A note on single-score benchmarks

There is no such thing as a fully objective single-number memory benchmark. Every score reflects choices about which workloads to include, how to weight them, and how to handle cache versus main-memory access. Different choices produce different scores, and a system that wins one benchmark can lose another depending on what each one emphasizes.

Novabench's choices make scores generally useful for comparing memory subsystems. Streaming bandwidth uses non-temporal operations, so it measures raw RAM throughput rather than cache speed. The pointer-chasing latency walk reflects what the CPU actually waits for when prefetching can't help. Installed capacity contributes a smaller share. Those choices favor the way memory behaves in real workloads, where bandwidth and access time both matter and cache cannot mask everything.

If your workload sits almost entirely in cache, or is dominated by very small random accesses, the headline score does not tell the full story. Novabench reports the per-workload sub-scores alongside the overall score for exactly this reason. The bandwidth result speaks to large-buffer workloads such as video editing and dataset processing. The latency profile by cache level speaks to pointer-heavy code, databases, and game engines. The headline is a summary; the breakdown shows how the memory handles your work.

Cross-platform comparability

Novabench runs the same memory workloads on every supported platform: Windows, macOS, and Linux, across x64 and ARM64. The streaming transfer test and the pointer-chasing latency walk are functionally equivalent on every platform, so scores compare cleanly across operating systems and architectures.

How the benchmark runs

The memory benchmark is designed around three priorities: consistent measurement, fair comparison across systems, and a balanced top-level score backed by full per-test detail. Several mechanics support those priorities:

  • Warmup and calibration: each test starts with a warmup phase to establish a steady operating state and calibrate workload size for the system.
  • Process isolation: each test runs in its own worker process, separate from the Novabench app. This lets the benchmark control exactly how the workload runs. The app's own UI, logging, and sensor sampling do not interfere. It also stops the previous test from influencing the next one.
  • Streaming bandwidth measurement: the transfer test uses non-temporal memory operations that bypass the CPU cache, so the result reflects raw bandwidth to and from RAM rather than cache speed. The test reads and writes large buffers repeatedly and records the top throughput across multiple passes.
  • Pointer-chasing latency profile: the latency test walks a randomized linked structure laid out across progressively larger regions. Each access depends on the previous one, so prefetching and out-of-order execution cannot hide the cost. The result is a clear picture of access times at L1, L2, L3, and main RAM.
  • Configuration detection: every result captures channel layout, rated memory speed, and (on supported systems) whether an XMP or EXPO timing profile is active. When you compare your score to others, you're comparing memory in the same configuration.

Top-level scores are a summary. Novabench always presents per-test results alongside the overall score, so you can weigh individual workloads against your own use case.

Factors affecting memory scores

Memory speed and timings

RAM modules are rated at specific speeds (for example, DDR4-3200 or DDR5-6000). Higher-rated memory delivers more bandwidth. Memory timings (CAS latency, tRCD, tRP, tRAS) determine how many clock cycles the memory controller waits before data is available. Tighter timings reduce latency.

In practice, speed has a larger impact on bandwidth than timings do, but both contribute to the overall memory performance.

Platform impacts

  • Budget chipsets: some motherboard chipsets cap memory speed below the rated speed of installed modules.
  • Laptop platforms: many laptops use soldered memory at fixed speeds determined by the manufacturer, with no option to upgrade or reconfigure.

System conditions

  • Memory pressure: if your system actively uses most of its RAM when the benchmark runs, the operating system can page data to disk. This significantly lowers performance. Close memory-heavy applications before you run a benchmark.
  • Background processes: processes that actively read and write large amounts of data (virtual machines, video rendering, database servers) compete for memory bandwidth during the test.

Understanding your memory results

After the benchmark completes, your memory results include:

  • Memory score: the combined score reflecting bandwidth and system RAM capacity
  • Transfer speed: measured read/write bandwidth in GB/s
  • Latency profile: access times across the memory hierarchy
  • Timing Optimization: on supported systems, Novabench indicates whether your memory runs at its highest available configuration profile (XMP/EXPO)

If your memory score is noticeably lower than expected for your hardware, check these items in order:

  1. Channel configuration: make sure that you are running in dual-channel mode. Consult your motherboard documentation for correct memory slots and BIOS settings.
  2. XMP/EXPO profile: on desktop systems, enable XMP (Intel) or EXPO (AMD) in your BIOS to run memory at its rated speed. Many systems default to a lower speed until you activate the profile.
  3. Background load: close memory-heavy applications, then re-run the benchmark.