Using microbenchmarks to evaluate system performance

Abstract
An implicit assumption underlying the use of microbenchmarks is that the time required for the microbenchmark to exercise the code path in question is the same as it when the code path is used by real programs. The vulnerability of this assumption is demonstrated by showing the significant variation that can occur with even simple microbenchmarks. The behavior of cache memory can distort the performance of a microbenchmark. Cache collisions can occur between memory in the same address space, or between memory in different address spaces. Flushing the cache while running a microbenchmark and counting memory accesses, rather than instructions, are two techniques for reducing the variability of results. It is stressed that it is important to understand low-level details about architectural implementation when interpreting microbenchmarks.

This publication has 1 reference indexed in Scilit: