A backtesteremben nagyon sok adatot kell kezelni memóriában, sok gigabájtot. A memóriacache-emben tömörítve vannak az adatok. Tömörítésre eddig a .NET GZip algoritmusát használtam, fastest módban, így elfogadható sebességet és tömörítést kapva.
Most viszont olvastam róla, hogy vannak alternatív algoritmusok is. Tettem hát egy próbát, az alábbi eredményeket kapva:
.NET GZipStream fastest mode:
Compression time: 00:00:00.1801551, compressed size: 75,122.00
Decompression time: 00:00:00.2001859
Ez a baseline.
Snappy native:
https://snappy4net.codeplex.com/
Compression time: 00:00:00.1815305, compressed size: 508,387.00
Decompression time: 00:00:00.1464451
Hát, ez nem győzött meg.
Lz4:
http://lz4net.codeplex.com/
Compression time: 00:00:00.6303679, compressed size: 41,926.00
Decompression time: 00:00:00.1364594
Ez se az igazi sebességben, de legalább jól tömörít.
Lz4Native:
https://code.google.com/p/lz4-net/
Compression time: 00:00:00.0925361, compressed size: 49,862.00
Decompression time: 00:00:00.1757730
Na, ez már tetszik. Jobban tömörített, mint a gzip, fele annyi idő alatt, mint az, és a decompress is egy kicsit gyorsabb. Kipróbálom majd igazi adatokkal is, meglátjuk, ott hogy zenél.