.. raw:: html .. role:: red .. role:: blue .. role:: green .. role:: cyan .. role:: magenta .. role:: orange .. role:: brown ---- Tips ---- Selective channel loading ========================= Since asammdf 6.1.0 you can use the **channels** argument to perform a selective channel loading. Only the metadata of channels found in the selection iterable will be preserved after loading the file. This can yield a big speed improvement for loading the file, but also when performing operations with the MDF object (for example ``select``, ``get``, etc.). .. code-block:: python required_channels = ["Speed", "Acceleration", "Force"] mdf = MDF("input.mf4", channels=required_channels) Data coupling ============= All the data returned by the MDF methods is decoupled from the raw data found in the original file. For example, if you modify the Signal returned by the ``get`` call the changes will not be seen in the raw data. A second ``get`` call of the same channel name will once again give you the data found in the original file. Chunked data access =================== *asammdf* optimizes memory usage by processing samples in fragments. The read fragment size was tuned based on experimental measurements and should give a good compromise between execution time and memory usage. You can further tune the read fragment size using the *configure* method, to favor execution speed (using larger fragment sizes) or memory usage (using lower fragment sizes). Optimized methods ================= The *MDF* methods (*cut*, *filter*, *select*) are optimized and should be used instead of calling *get* for several channels. Each *get* call will read all channel group raw samples from disk. If you need to extract multiple channels it is strongly advised to use the *select* method: for each channel group that contains channels submitted for selection, the raw samples will only be read once. Faster file loading =================== Skip XML parsing for MDF4 files ------------------------------- MDF4 uses the XML channel comment to define the channel's display name (this acts as an alias for the channel name). XML parsing is an expensive operation that can have a big impact on the loading performance of measurements with high channel count. You can use the keyword only argument *use_display_names* when creating MDF objects to control the XML parsing (default is *False*). This means that the display names will not be available when calling the *get* method.