Benchmarks¶
idfkit is benchmarked against eppy, opyplus, and energyplus-idd-idf-utilities on a 1,700-object IDF file (500 zones, 100 materials, 100 constructions, 1,000 surfaces) using EnergyPlus V9.3 -- the newest version natively supported by all four tools.
Each operation was run 10 times (100 for sub-millisecond ops) and the minimum time is reported. Bars are sorted fastest to slowest.
Load IDF file¶
Get all objects by type¶
Get single object by name¶
Add 100 objects¶
Modify fields (all zones)¶
Write IDF to string¶
Supported EnergyPlus versions¶
| Tool | Versions | Schema format |
|---|---|---|
| idfkit | 8.9 -- 25.2 | epJSON schema (bundled, gzip-compressed) |
| eppy | 1.1 -- 9.2 (bundled IDD); any version with external IDD | IDD file |
| opyplus | 8.0 -- 9.6, 22.1 -- 24.1 | IDD file (bundled) |
| idd-idf-utilities | any version up to ~23.2 (IDD parser breaks on 24.1+) | IDD file (external) |
Methodology¶
Benchmarks are run with gc.collect() before each iteration and gc.disable()
during timing to avoid GC pauses. The test IDF is generated programmatically
with realistic object types (zones, materials, constructions, surfaces).
To reproduce: