0
我的C基於Linux的程序輸入是:查找和替換對的gzip內容數據有效
char *in_str, char *find_str, char *replacing_str
in_str
的是壓縮數據(gzip的)。
程序需要在未壓縮的輸入數據中找到find_str
,將其替換爲replacing_str
,然後重新壓縮數據。
這樣做的簡單方法是使用許多可用的gzip compress/uncompress庫之一來解壓縮數據,操作未壓縮的數據,然後重新壓縮輸出。不過,我需要儘可能高效(這是一個RT程序)。
我想知道使用即時庫(例如zlibc)方法還是僅執行上述操作會更高效。
也許更何況,它是重要的:
- 的find_str和replacing_str字符串是數據的一小部分
- 它們的長度是不相等的
- 假定的find_str出現約4或5倍
- 未壓縮數據len爲〜2K - 6K字節
確實任何熟悉且Eff採用這種方式來實現這一點?
謝謝
您可能可以實施緩存方案。如果一個特定的文件被解壓縮,則保留解壓縮(和修改)的文本一段時間。然後後續請求不需要解壓縮。當達到緩存空間的特定閾值時,解壓縮的文件可以用最久以前使用的文件進行重新壓縮。對於某些類型的使用,這可能是一個真正的好處,例如,如果活動是突發和異步 – Vorsprung