Skip to content

Flint: Rework scan listener

This PR clean up the scan_manager to support the low level ScansObserver instead of DefaultScansObserver.

This allow to:

  • Reduce the processing at a critical place (previously, some information was not exposed)
  • Make it more readable as there is no more dict with non-explicit content.

This MR allow clean up few things in Flint scan_manager module.

For that a field is-scan-sequence was introduced in the scan_info, be able to distinguish scans and scans containing scans (0efe67c4)

Benchmark

Setup

  • Tested with 64 channels of 64 values
  • Only the data reception is benchmarked (before sending it to the application pipeline)
  • 100 iterations / 5 repeat

Brute force computation

In the worst case scenario when every single new data have to be processed independently.

  • Starting point: 9.14s
  • Use ScansObserver: 2.1s (4.4 faster)

Gevent caching

Release gevent loop every 32 data

  • Starting point: 4.54s
  • Use ScansObserver: 4.2s (close to the same)
  • Push scalar channel by bunch: 3.71s
  • Mitigate use of concate for very fast data pushing: 2.83s
Edited by Valentin Valls

Merge request reports