Benchmarks

Test setup

The benchmarks were done using two test files (available here) (for mdf version 3 and 4) of around 170MB. The files contain 183 data groups and a total of 36424 channels.

asamdf 5.0.0dev was compared against mdfreader 3.0.

For each category two aspect were noted: elapsed time and peak RAM usage.

Dependencies

You will need the following packages to be able to run the benchmark script

  • psutil
  • mdfreader

Usage

Extract the test files from the archive, or provide a folder that contains the files “test.mdf” and “test.mf4”. Run the module bench.py ( see –help option for available options )

x64 Python results

Benchmark environment

  • 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)]
  • Windows-10-10.0.16299-SP0
  • Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
  • numpy 1.16.1
  • 16GB installed RAM

Notations used in the results

  • compress = mdfreader mdf object created with compression=blosc
  • nodata = mdfreader mdf object read with no_data_loading=True

Files used for benchmark:

  • mdf version 3.10
    • 167 MB file size
    • 183 groups
    • 36424 channels
  • mdf version 4.00
    • 183 MB file size
    • 183 groups
    • 36424 channels
Open file Time [ms] RAM [MB]
asammdf 5.0.0dev mdfv3 329 111
mdfreader 3.0 mdfv3 1942 425
mdfreader 3.0 compress mdfv3 1667 293
mdfreader 3.0 no_data_loading mdfv3 864 171
asammdf 5.0.0dev mdfv4 455 123
mdfreader 3.0 mdfv4 5217 448
mdfreader 3.0 compress mdfv4 4999 320
mdfreader 3.0 no_data_loading mdfv4 3644 178
Save file Time [ms] RAM [MB]
asammdf 5.0.0dev mdfv3 544 110
mdfreader 3.0 mdfv3 6017 453
mdfreader 3.0 no_data_loading mdfv3 6808 513
mdfreader 3.0 compress mdfv3 6124 452
asammdf 5.0.0dev mdfv4 449 124
mdfreader 3.0 mdfv4 3409 467
mdfreader 3.0 no_data_loading mdfv4 4841 485
mdfreader 3.0 compress mdfv4 3597 465
Get all channels (36424 calls) Time [ms] RAM [MB]
asammdf 5.0.0dev mdfv3 4783 111
mdfreader 3.0 mdfv3 59 425
mdfreader 3.0 nodata mdfv3 15259 207
mdfreader 3.0 compress mdfv3 200 292
asammdf 5.0.0dev mdfv4 8210 123
mdfreader 3.0 mdfv4 80 448
mdfreader 3.0 compress mdfv4 226 322
mdfreader 3.0 nodata mdfv4 22078 208
Convert file Time [ms] RAM [MB]
asammdf 5.0.0dev v3 to v4 3090 157
asammdf 5.0.0dev v4 to v3 2665 151
Merge 3 files Time [ms] RAM [MB]
asammdf 5.0.0dev v3 8409 173
mdfreader 3.0 v3 18133 1329
mdfreader 3.0 compress v3 18285 1277
mdfreader 3.0 nodata v3 17846 1432
asammdf 5.0.0dev v4 8902 174
mdfreader 3.0 v4 29391 1356
mdfreader 3.0 nodata v4 28493 1334
mdfreader 3.0 compress v4 29109 1298