I’ve implemented garbage collection for the repository tree library.
It gives about a third reduction in memory footprint, 67MB to 47MB.
It costs about 20% in runtime performance but we’re still talking 1 second for my test data.
This will be heavily outweighed by the blob processing in practise.
So we’re looking good for a stupidly fast and memory efficient solution.