Description:
Let all serializers work in parallel instead of one after the other.
Justification / Use-Case:
Serialization is perfectly independent. Only assembly in an XML file or generating unique filenames on disk is something that needs synchronization. Threading would make use of today’s multi-core processors and speed up the whole process.
Implementation:
Qt-Concurrent has some pretty features for such serialization. Micro-services use Poco for threading. Open-MP would also be a simple solution.
This topic would be relatively easy to achieve and could improve perceived performance significantly.
Questions:
- properties are really small; threading could be overhead instead of speed-up! A thread pool implementation could be performant, however
- Disk-IO could be limiting for images and surfaces. If this should be the case, we could limit BaseData-IO to 1 or 2 threads while some 12 others serialize properties.