您正在尋找的是流壓縮方法。好消息是你有很多選擇。另請注意,您必須考慮內存,因爲某些解決方案(基於字典)可能需要大量內存,因此需要進行測試和調整。
爲了保持我的答案,我建議給LZ4一個嘗試。
LZ4 - http://code.google.com/p/lz4/
LZ4是一個非常快的無損壓縮算法,以每300核心MB/s的,可伸縮的多芯CPU提供 壓縮速度。 它還具有極速解碼器,速度以GB/s爲單位,每 內核,通常達到多核系統的RAM速度限制。
基準:
Name Ratio C.speed D.speed
MB/s MB/s
LZ4 (r97) 2.084 410 1810
LZO 2.06 2.106 409 600
QuickLZ 1.5.1b6 2.237 373 420
Snappy 1.1.0 2.091 323 1070
LZF 2.077 270 570
zlib 1.2.8 -1 2.730 65 280
LZ4 HC (r97) 2.720 25 2040
zlib 1.2.8 -6 3.099 21 300
有很多可用的實現時,請確認:http://code.google.com/p/lz4/
LZO - http://lzo-net.sourceforge.net/
LZO.Net帶來馬庫斯 「FXJ」 Oberhumer的偉大LZO壓縮 庫(V1.08)到.NET的力量。它使用一個小C#類對原生 DLL進行訪問,保持ANSI-C 庫的原始速度。
斯納皮 - https://code.google.com/p/snappy/
斯納皮是壓縮/解壓縮庫。它不旨在最大壓縮爲 ,或與其他任何壓縮庫的兼容性爲 庫;相反,它的目標是非常高的速度和合理的壓縮。
兩個C#機實現可供選擇:
QuickLZ - http://www.quicklz.com/
QuickLZ是世界上速度最快的壓縮庫,每個內核達到了308Mbps/s/s。如果已經獲得此類 或者在GPL 1,2或3下,可以在商業許可下使用它,其中任何發佈到 的公衆必須是開源的。
本地實現 - QuickLZ C#
So far, only a subset of the library has been ported,
namely the setting:
QLZ_COMPRESSION_LEVEL = 1 or 3
QLZ_STREAMING_BUFFER = 0
QLZ_MEMORY_SAFE = 0
我需要一個c#實現庫。你有沒有一個例子說明如何使用FastLZ爲動態文件創建標題,然後將其餘的標記標記到該標題? Xceed內置此功能。謝謝! – TheDude
我已經更新了答案。我確實刪除了FastLZ,因爲它不適合你。所以你有4個選項:LZ4,LZO,Snappy,QuickLZ(基準測試的頂部)。 LZO是一個包裝。 QuickLZ C#實現有一些限制。無論如何,你可以和LZ4或Snappy一起去。 –
LZ4可以解壓縮壓縮文件嗎? – zer0ne