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 7.0.1 was compared against mdfreader 4.1.

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.9.4 (tags/v3.9.4:1f2e308, Apr 6 2021, 13:40:21) [MSC v.1928 64 bit (AMD64)]

  • Windows-10-10.0.19041-SP0

  • Intel64 Family 6 Model 158 Stepping 10, GenuineIntel

  • numpy 1.21.2

  • 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 7.0.1 mdfv3

369

186

mdfreader 4.1 mdfv3

1741

498

mdfreader 4.1 no_data_loading mdfv3

646

248

mdfreader 4.1 compress mdfv3

1463

365

asammdf 7.0.1 mdfv4

468

199

mdfreader 4.1 mdfv4

4350

520

mdfreader 4.1 no_data_loading mdfv4

2892

310

mdfreader 4.1 compress mdfv4

4105

391

Save file

Time [ms]

RAM [MB]

asammdf 7.0.1 mdfv3

378

186

mdfreader 4.1 mdfv3

4310

527

mdfreader 4.1 no_data_loading mdfv3

5070

586

mdfreader 4.1 compress mdfv3

4456

525

asammdf 7.0.1 mdfv4

331

366

mdfreader 4.1 mdfv4

2254

539

mdfreader 4.1 no_data_loading mdfv4

3591

618

mdfreader 4.1 compress mdfv4

2400

535

Get all channels (36424 calls)

Time [ms]

RAM [MB]

asammdf 7.0.1 mdfv3

3354

187

mdfreader 4.1 mdfv3

40

498

mdfreader 4.1 nodata mdfv3

12686

283

mdfreader 4.1 compress mdfv3

154

366

asammdf 7.0.1 mdfv4

5243

364

mdfreader 4.1 mdfv4

51

520

mdfreader 4.1 nodata mdfv4

20210

336

mdfreader 4.1 compress mdfv4

170

396

Convert file

Time [ms]

RAM [MB]

asammdf 7.0.1 v3 to v4

2186

232

asammdf 7.0.1 v4 to v410

2008

394

asammdf 7.0.1 v4 to v420

2359

438

Merge 3 files

Time [ms]

RAM [MB]

asammdf 7.0.1 v3

6449

224

mdfreader 4.1 v3

0*

0*

mdfreader 4.1 nodata v3

0*

0*

mdfreader 4.1 compress v3

0*

0*

asammdf 7.0.1 v4

6713

409

mdfreader 4.1 v4

34746

1156

mdfreader 4.1 nodata v4

37608

1266

mdfreader 4.1 compress v4

34184

1151

Graphical results

(Source code, png, hires.png, pdf)

_images/benchmarks-1.png

(Source code, png, hires.png, pdf)

_images/benchmarks-2.png

(Source code, png, hires.png, pdf)

_images/benchmarks-3.png

(Source code, png, hires.png, pdf)

_images/benchmarks-4.png

(Source code, png, hires.png, pdf)

_images/benchmarks-5.png

(Source code, png, hires.png, pdf)

_images/benchmarks-6.png

(Source code, png, hires.png, pdf)

_images/benchmarks-7.png

(Source code, png, hires.png, pdf)

_images/benchmarks-8.png

(Source code, png, hires.png, pdf)

_images/benchmarks-9.png

(Source code, png, hires.png, pdf)

_images/benchmarks-10.png