Context
The build measures memory on every change and stops when memory grows. That check is fast, but it does not show where the time goes, and it does not show what happens over a long run.
Other libraries are faster at reading. A contest for read speed alone ends in third place. The project needs one dimension where it wins.
Scope
Build a benchmark suite with two modes.
- A regression check that runs on every build. It must stay fast.
- A full performance and load run that a maintainer starts by hand. It measures more workbook shapes and sizes, and it runs long enough to show whether memory grows over time.
The full mode collects a flame graph. Measurement tools change the numbers they measure, so collect the flame graph in a separate run. The reported numbers come only from a run with no tools attached.
Find the dimension where this library can beat the others, and add a benchmark for it. One operation is a candidate: this library changes file content directly, and other libraries build the whole workbook again.
Where to start
The benchmark project holds a guide. It describes the suites that exist and the comparison against three other libraries.
Acceptance criteria
Extra resources
dotnet-trace collects the data. speedscope shows the flame graph.
- The result of the candidate benchmark decides the work in the next task and in M3. Run it early.
Context
The build measures memory on every change and stops when memory grows. That check is fast, but it does not show where the time goes, and it does not show what happens over a long run.
Other libraries are faster at reading. A contest for read speed alone ends in third place. The project needs one dimension where it wins.
Scope
Build a benchmark suite with two modes.
The full mode collects a flame graph. Measurement tools change the numbers they measure, so collect the flame graph in a separate run. The reported numbers come only from a run with no tools attached.
Find the dimension where this library can beat the others, and add a benchmark for it. One operation is a candidate: this library changes file content directly, and other libraries build the whole workbook again.
Where to start
The benchmark project holds a guide. It describes the suites that exist and the comparison against three other libraries.
Acceptance criteria
Extra resources
dotnet-tracecollects the data.speedscopeshows the flame graph.