gpt4 book ai didi

c - 高效查找和替换 gzip 内容上的数据

转载 作者:行者123 更新时间:2023-11-30 15:35:27 25 4
gpt4 key购买 nike

我的基于c linux的程序输入是:

char *in_str, char *find_str, char *replacing_str

in_str 是压缩数据 (gzip)。

程序需要在未压缩的输入数据中查找find_str,将其替换为replacing_str,然后重新压缩数据。

执行此操作的简单方法是使用许多可用的 gzip 压缩/解压缩库之一来解压缩数据,操作未压缩的数据,然后重新压缩输出。但是我需要使其尽可能高效(它是一个 RT 程序)。

我想知道使用即时库(例如 zlibc)方法或简单地执行上述操作是否更有效。

也许值得一提的是:

  • find_str 和 replacement_str 字符串是数据的一小部分
  • 它们的长度不相等
  • find_str 应该出现大约 4 或 5 次
  • 未压缩数据长度约为 2K - 6K 字节

有人熟悉实现这一点的有效方法吗?

谢谢

最佳答案

无论如何,您都必须解压缩才能搜索字符串。 (您也许可以只执行一次并构建索引。但是,这可能比未压缩的数据大得多,因此您最好只存储未压缩的数据。)

您可以通过提前准备 gzip 文件来避免重新压缩所有内容,以便使用 zlib 的 Z_FULL_FLUSH 选项将其压缩为较小的无历史记录单元。这将稍微减少压缩,具体取决于您执行压缩的频率,但如果仅需要重新压缩多个 block 之一,则将大大加快构建输出的速度。

关于c - 高效查找和替换 gzip 内容上的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com