pythonic-cv icon indicating copy to clipboard operation
pythonic-cv copied to clipboard

Investigate performance effects of current structure

Open ES-Alexander opened this issue 4 years ago • 1 comments

Motivation:

Every convenience comes at a cost, but quantifying the cost makes it possible to determine whether it's "too expensive".

Suggested Method

Currently use a combination of inheritance and composition, which make modification and new base classes really simple to implement and use, but may come at a performance cost. Would be good to quantify the difference between the current situation and e.g. the 'best-case' performance of VideoReader, LockedCamera, and LockedScreen being implemented with cv2.VideoCapture as their direct parent class.

Possible Resulting Changes

If performance difference is significant, it may be worth

  • making a code-generator that can trade off some program memory for the benefit of fewer function calls at each step
  • changing code structure (hard to recommend - very versatile at the moment, and repetition is a 'bad smell')
  • recommending this library for rapid development, and more optimised code once development is complete (e.g. lower level looping, or just C++ implementation)

ES-Alexander avatar Oct 15 '21 12:10 ES-Alexander

Could possibly even implement separate installation targets, for [performance] vs [versatility] or something?

ES-Alexander avatar Oct 15 '21 12:10 ES-Alexander