Skip to content

Latest commit

 

History

History
52 lines (35 loc) · 2.4 KB

File metadata and controls

52 lines (35 loc) · 2.4 KB

OfficeIMO.Excel.Benchmarks

OfficeIMO.Excel.Benchmarks is the benchmark harness for OfficeIMO.Excel. It measures representative workbook read, write, edit, package-size, and real-world feature workloads. It is not a runtime package.

Run benchmarks

dotnet run -c Release --framework net8.0 --project .\OfficeIMO.Excel.Benchmarks\OfficeIMO.Excel.Benchmarks.csproj

Filter a class:

dotnet run -c Release --framework net8.0 --project .\OfficeIMO.Excel.Benchmarks\OfficeIMO.Excel.Benchmarks.csproj -- --filter *ExcelWriteBenchmarks*

Snapshot and profile artifacts

dotnet run -c Release --framework net8.0 --project .\OfficeIMO.Excel.Benchmarks\OfficeIMO.Excel.Benchmarks.csproj -- --snapshot .\Docs\benchmarks\officeimo.excel.snapshot.json
dotnet run -c Release --framework net8.0 --project .\OfficeIMO.Excel.Benchmarks\OfficeIMO.Excel.Benchmarks.csproj -- write-profile --rows 25000
dotnet run -c Release --framework net8.0 --project .\OfficeIMO.Excel.Benchmarks\OfficeIMO.Excel.Benchmarks.csproj -- read-profile --rows 2500

Library comparison

dotnet run -c Release --framework net8.0 --project .\OfficeIMO.Excel.Benchmarks\OfficeIMO.Excel.Benchmarks.csproj -- compare --rows 2500

The comparison harness includes only libraries whose public APIs map to a scenario. It uses separate handling for legacy EPPlus so incompatible package generations do not run in one process.

For release-style evidence:

dotnet run -c Release --framework net8.0 --project .\OfficeIMO.Excel.Benchmarks\OfficeIMO.Excel.Benchmarks.csproj -- comparison-suite --out-dir .\Docs\benchmarks\comparison-current --row-set 2500,25000 --warmup 1 --iterations 3

Website data

After a comparison-suite run, refresh website/blog benchmark data with:

.\Build\Generate-ExcelBenchmarkWebsiteData.ps1 -SummaryPath .\Docs\benchmarks\comparison-current\officeimo.excel.comparison-summary.json -ManifestPath .\Docs\benchmarks\comparison-current\officeimo.excel.comparison-suite-manifest.json -RunMode quick

Boundaries

  • Benchmark scenarios and opt-in comparison commands belong here.
  • Runtime workbook behavior belongs in OfficeIMO.Excel.
  • Committed benchmark artifact guidance belongs in Docs/benchmarks.
  • Comparison outputs are local evidence and should not be treated as CI gates unless a workflow explicitly opts into them.