【发布时间】:2009-03-20 15:33:03
【问题描述】:
我正在使用 Archive::Tar::Streamed 归档一个 4GB 的目录,其中包含非常小的源代码文件和一些 jar。我正在使用具有 4GB RAM 并使用 Archive::Tar::Streamed 的系统,因为我不希望我的整个目录都在内存上,因为它会导致内存不足。我使用 File::Find 以 DFS 方式从目录中一一读取文件,并使用 Archive::Tar::Streamed 中的 add 方法将其写入 tar 文件。在任何给定的时间点,只有一个文件驻留在内存中,即使这样,我的 perl 进程的 %MEM 也在逐渐增加。它达到了20%。我的目录中没有 800MB 的文件。我这里有两个问题 1)为什么%MEM逐渐增加? 2) 为什么它上升到 20%。是因为 Archive::Tar 在将内容写入 tar 文件后没有释放内存吗?
【问题讨论】: