ratal / mdfreader

Read Measurement Data Format (MDF) versions 3.x and 4.x file formats in python
Other
169 stars 74 forks source link

error in getChannelData when noDataLoading=True #81

Closed danielhrisca closed 7 years ago

danielhrisca commented 7 years ago

Benchmark environment

The files used are the test files.

With mdf version 3 I get the error:

Traceback (most recent call last):
  File "/usr/lib/python3.6/multiprocessing/process.py", line 249, in _bootstrap
    self.run()
  File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/home/daniel/.config/spyder-py3/temp.py", line 198, in get_all_reader3_nodata
    for s in x:
RuntimeError: dictionary changed size during iteration

With mdf version 4 I get the error:

Traceback (most recent call last):
  File "/usr/lib/python3.6/multiprocessing/process.py", line 249, in _bootstrap
    self.run()
  File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/home/daniel/.config/spyder-py3/temp.py", line 151, in get_all_reader4_nodata
    for s in x:
RuntimeError: dictionary changed size during iteration
ratal commented 7 years ago

Hi Daniel, Situation should have improved for version 4, still working on version 3

ratal commented 7 years ago

Hi Daniel, Both versions should not throw any error.

danielhrisca commented 7 years ago

Hello Aymeric,

no more errors with the latest commit, but you probably want to investigation the performance.

Benchmark environment

Notations used in the results

Files used for benchmark

Get all channels (36424 calls) Time [ms] RAM [MB]
mdfreader 0.2.6 mdfv3 95 542
mdfreader 0.2.6 nodata mdfv3 114142 413
mdfreader 0.2.6 compression mdfv3 757 264
mdfreader 0.2.6 compression bcolz 6 mdfv3 357 1037
mdfreader 0.2.6 mdfv4 98 1315
mdfreader 0.2.6 nodata mdfv4 168593 1185
mdfreader 0.2.6 compression mdfv4 750 1029
mdfreader 0.2.6 compression bcolz 6 mdfv4 411 1750