TQFolder performance
With the ever-increasing usage of the framework, the size of (sample)folders is once again hitting limits of feasibility. Thus, we have collected a few ideas for where performance improvements could be achieved:
- ExportName mechanic: Currently,
TQFolder
objects have anfExportName
member that is used to construct and store export names of objects for split writing. This could be removed by instead passing the export name as an argument to thesplit
method. Along the same lines,collapse
andwriteUpdate
could be streamlined, as they duplicate a lot of the code of the (more commonly used)split
. - tag registry: In order to avoid tag duplication, it would be useful to have a global tag registry that stores every key/value pair exactly once. The
TQTaggable
instances could then instead just point to the corresponding tags they have using shared pointers. - SampleManager: As the
fTreeLocation
string stores the tree locations of the samples, these are very long strings that are duplicated many times over. A sample manager that manages the locations of samples could make the friend-mechanism considerably easier, and also reduce memory consumption of the samples.