Wenn in den Daten viele Strings doppelt vorkommen, hilft vielleicht
String Interning. Das hat mir mal sehr geholfen, den Speicherbedarf einer Anwendnung zu reduzieren. Dadurch werden doppelte Strings zu einem einzigen zusammengefasst, der dann entsprechnend einen höheren Referenzzähler hat.
Eine Implementation auf Basis einer Stringlist findest Du z.B.
in meiner dzlib. Die ist allerdings noch für AnsiStrings entwickelt und mit UnicodeStrings nicht getestet.
Interessante Idee, nur kommen hier im Prinzip keine doppelten Strings vor, da jeder String mit einem eindeutigen ID versehen ist (somit ist jeder String anders).
Aber dennoch interessant, evtl. kann man es ja mal bei einer anderen Gelegenheit verwenden.