[PATCH] D20724: [pdb] Apply zero-copy algorithms to symbol stream iteration
Zachary Turner via llvm-commits
llvm-commits at lists.llvm.org
Thu May 26 22:37:43 PDT 2016
zturner created this revision.
zturner added a reviewer: ruiu.
zturner added a subscriber: llvm-commits.
There is one PDB stream for each module (compiland). This stream contains (among other things) all of the symbols for each compiland. Generally speaking this is where a large portion of memory associated with the PDB lies.
This patch slightly improves the `VarStreamArray` class by templatizing it on a value type and changing the length conversion function to a value / length extraction function. In doing so, we can now apply the `VarStreamArray` to symbol streams and iterate them exactly the same as before, but without copying the entire symbol stream into a contiguous buffer.
PDB File Size: 6,598,656 bytes
Combined size of all symbol streams: 1,985,508 bytes
So this is a savings of 30% of the PDB size. We should be able to claim another 30% or so by applying this to the type info streams.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 16478 bytes
Desc: not available
More information about the llvm-commits