the Chromium logo

The Chromium Projects

Disk Cache Benchmarking & Performance Tracking


More backend work in the disk cache is demanding good tools for ongoing disk cache performance tracking. The Very Simple Backend implementation needs continuous A/B testing to show its implementation is advancing in speed. To track progress on this backend, and also to permit comparisons between alternative backends provided in net, two ongoing methodologies are proposed.

Proxy Backend with Replay

The Proxy Backend is a simple Disk Cache Backend and Entry implementation that pass through to an underlying Entry and Backend, but recording a short log with parameter information & timing information to allow replay.

This log can then be replayed in a standalone replay application which takes the log, constructs a backend (perhaps a standard blockfile backend, a very simple backend or a log structured backend), and performs the same operations at the same delays, all calls as if from the IO thread. The average latency of calls, as well as system load during the test can then permit A/B comparison between backends.



browser_test with corpus

Starting up with a backend, the browser_test loads a large corpus of pages (either from a local server, or a web server simulating web latency, or possibly even the actual web), with an initially empty cache, and then runs either that same corpus or a second corpus immediately afterwards with the warm cache. This can be repeated using different backends, to permit A/B comparisons.

The browser test should introspect on UMA; outputs should include HttpCache.* benchmarks, as well as PLT.BeginToFirstPaint/PLT.BeginToFinish.