MNB PHPExcelDeveloper Guide
Benchmarks

Spreadsheet Benchmark Results

Review disclosed reference measurements, understand what they do and do not prove, and reproduce PHP Excel benchmarks on your own environment.

Updated

PHP 8.1+ReproducibleEnvironment qualified
Available sincev2.0.5Version guide
LevelIntermediateReading time9 minPackagemnb/mnb-phpexcel

What you will learn

  • Interpret elapsed time and peak memory without treating one machine as universal truth.
  • Separate streaming behavior from full-array materialization.
  • Re-run the provided benchmark in a fresh PHP process.

Reference documentation run#

Reference environment

Date
2026-07-30
PHP
8.4.16 CLI, NTS
MNB source
Core 2.0.1 XML fix + XLSX 2.0.0 parser
Extensions
XMLReader off, native ZipArchive off; library fallbacks active
Fixture
large-orders.xlsx, 500 data rows, 22,629 bytes
Iterations
9 per mode; median reported
Storage
Container local filesystem
MethodRowsMedian timePeak memoryNotes
rows()50037.512 ms18 MiBForward iteration; no final row array retained.
toArray()50037.298 ms18 MiBSmall fixture; collected rows did not exceed allocator baseline.

These numbers describe one disclosed environment and fixture. They are not a universal performance guarantee. Re-run the included script on your PHP version, hardware, storage, workbook, and options.

What this result means#

  • It confirms both reader paths completed the same 500-row fixture in the disclosed fallback environment.
  • It does not prove that one method is always faster; this fixture is too small for broad conclusions.
  • Streaming becomes more important when retained row data, shared strings, formulas, styles, or business transformations grow.
  • Later v2.0 maintenance releases changed sheet utilities, diagnostics, error rendering, and structured counts rather than the core worksheet parser used here.

Continue with the detailed benchmark#