- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Perl 项目(CGI 脚本,在 Apache 上运行),它以前一直使用 gunzip 和 tac(将 gunzip 管道传输到 tac,然后将其管道传输到文件句柄)以完成其工作负载,即处理大的、平坦的文本文件,有时每个文件的大小约为 10GB 或更多。更具体地说,在我的用例中,这些文件需要即时解压缩,有时也需要向后读取(有时两者都是必需的 - 主要是为了速度)。
当我开始这个项目时,我考虑使用 File::ReadBackwards
但出于性能原因决定使用 tac。在昨晚对一个稍微相关的话题进行了一些讨论并提出了一些尝试将处理完全保留在 Perl 中的建议之后,我决定再给 File::ReadBackwards
一次机会,看看它在这种工作负载下的表现如何.
一些初步测试表明它实际上可能与 tac 相当,甚至可能更好。但是,到目前为止,我只能在未压缩的文件上进行测试。但它现在引起了我的兴趣,所以我想看看我是否可以让它也能处理压缩文件。
现在我很确定我可以将一个文件解压缩到另一个 文件,然后向后读取它,但我认为这会带来糟糕的性能。特别是因为出于帮助性能的确切原因,用户可以选择将结果限制为 X 数量,所以我不想每次提取任何行时都必须处理/解压缩整个文件从它出来。理想情况下,我希望能够做我现在所做的事情,即解压缩并即时向后读取,并能够在需要时在达到配额后立即退出。
所以,我的困境是,如果可能的话,我需要找到一种方法将 gunzip 的输出通过管道传输到 File::ReadBackwards
。
附带说明一下,我也愿意给 IO::Uncompress::Gunzip
一个机会(将解压缩性能与普通的管道 gunzip 过程进行比较),要么是为了提高性能(这会让我感到惊讶)或为了方便/能够将输出通过管道传输到 File::ReadBackwards
(我觉得这更有可能)。
这里有人有什么想法吗?非常感谢任何建议。
最佳答案
你不能。 File::ReadBackwards需要可搜索的句柄(即普通文件,而不是管道或套接字)。
要使用 File::ReadBackwards,您必须首先将输出发送到一个命名的临时文件(您可以使用 File::Temp 创建)。
关于Perl - 管道 gunzip 输出到文件::ReadBackwards,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57796510/
我将多个文件解压缩到一个文件夹中,如下所示: gunzip -f -k *.gz 一些 .gz 文件已损坏,导致命令中止。 什么是解压缩所有文件同时忽略损坏文件的好方法? 最佳答案 原始答案给出了一个
一个 API 返回大量结果集,我希望我可以用 PHP 压缩它,但我不知道如何用 Javascript 压缩它。在 Javascript 中是否有某种库能够做到这一点?我在网上搜索并找到了一些东西,但不
这是我的代码的最新版本。感谢您的 zpipe.c,它现在适用于我所有的 gunzipped 文件,无论它们的大小如何。但是我不明白的是,在内部循环中 printf("%s", out) 仍然打印相同的
对于 node.js 和异步处理方式来说相对较新,到目前为止,我已经能够使用 Promise 来使用 fs readFile 来读取文件,但我还没有让 zlib Gunzip 工作。用 Coffees
背景 我正在使用那些硬盘分区的 mysql 服务器: ... /dev/vdd 99G 58G 39G 61% /var/lib/mysql tmpfs 2
我需要在 Windows 的终端中使用 gunzip(这是 gzip 的解压工具) 我已经从 here 下载了 gzip (第一个下载链接) 我安装了它并添加了它的 /bin文件夹到我的 PATH变量
我在一个磁盘空间有限的共享服务器上,并且我有一个 gz 文件,它可以 super 扩展为一个巨大的文件,比我拥有的还要多。我怎样才能“部分”地提取它(假设一次 10 MB),并处理每个部分,甚至暂时不
我有一个 Perl 项目(CGI 脚本,在 Apache 上运行),它以前一直使用 gunzip 和 tac(将 gunzip 管道传输到 tac,然后将其管道传输到文件句柄)以完成其工作负载,即处理
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我只是在测试 Node.js 的 ZLIB,但很快就会遇到奇怪的结果。这是我的脚本(灵感来自 Node.js 手册示例 http://nodejs.org/api/zlib.html#zlib_exa
我正在开发一个程序,该程序从 curl 函数读取 header 并搜索特定 header ,如果找到,则压缩内容部分并在内容中搜索另一个字符串。我需要实现最后一部分。休息完成了。有没有办法从 C++
我正在尝试创建一个 R API for StackOverflow .输出被压缩。例如: readLines("http://api.stackoverflow.com/0.9/stats/", wa
the task 的文档说它有一个即时版本。 在我的例子中,这会导致 NullPointerException: >ant download Java HotSpot(TM) 64-Bit Serv
我已经为我的数据库恢复自动化创建了一个 bash 脚本。当我运行以下命令时,我得到/my/sql/file/path.sql: No such file or directory。 ssh $USER
我在发送到服务器的文件的 .gz 文件中遇到 crc 错误/长度错误。 在手动检索文件时,我得到的文件大小为 1932 字节,并且 gunzips 正常,没有任何问题。 但是当我通过 shell 脚本
在使用 twistedmatrix ProxyClient 时,我如何压缩和处理响应部分? 我需要检查文本或 javascript 和 ajax 查询/答案。我应该使用 handleResponseE
我有大量的 HTTP POST 请求被发送到 nginx 服务器,然后负载平衡到一组反向代理的 node.js/express.js 后端服务器。为了节省一些网络消耗,使用 GZIP 和 header
我正在尝试,只是为了好玩,将 gzip Writer 直接连接到 gzip Reader,这样我就可以动态地写入 Writer 并从 Reader 读取。我希望能准确阅读我写的内容。我正在使用 gzi
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
正如某些 StackOverflow 答案所示,您可以使用 decompressedSize = gzipFile.seek(0, io.SEEK_END) 获得确切的 gzip 解压缩文件大小。 .
我是一名优秀的程序员,十分优秀!