Optimization in Development Tools
- Keep track of all free space in the item repository, by not only keeping freed items, but also storing free ranges that were left while re-using space, and merging consecutive free space together.
- Add functionality to keep track of lost space(Neither referenced by free-items or by used items). This should always be null after this change.
This greatly reduces the size some of the .kdevduchain structures grow up to after some time.
For example my last persistent declaration table had a size of 150MB, where 70MB were lost, and 60 MB were in fragmented free-item lists.
Exactly the same table will have a size of 20 MB now. :-)