2

我运行一个在文件系统上进行文本操作的脚本。

该脚本在文本文件(.h、.cpp)上运行。

当脚本运行时,我看到 PF 使用量增加,直到达到为页面文件分配的 VM 数量。

有没有办法在运行期间或之后刷新 VM?

我已经提出了另一个关于它的问题(认为这是不同的问题): Single sed command for multiple substitutions?

4

3 回答 3

1

分块批处理您的操作,以便您可以更有效地使用内存,而不仅仅是将所有内容加载到内存中。如果您的文件都不大,请限制将这些文件中的文本加载到内存中的线程数。如果使用大文件,请将它们分解以使用您拥有的内存更有效地处理它们。

于 2009-10-05T12:43:59.077 回答
0

不,但也许您可以更改脚本以消耗更少的内存。

更新。我试图在 Linux 上重现该问题,对应于另一个问题中列出的脚本。在 Bash 中:

while read fileName; do

    echo
    echo -----------------------------------------------
    echo For file $fileName :

    while read matchItem; do
      echo  Searching for  $matchItem
      echo
      sed -i "s/$matchItem/XXXXXXXXX $matchItem XXXXXXXXXXXXXX/" $fileName
    done < allFilesWithH.txt

done < all.txt

我使用了蛋白质序列数据库的片段(大文本文件,FASTA 格式,最大 74 MB)和短肽序列进行测试(这样每个文件至少有 10 次替换)。虽然它正在运行,但没有进程使用任何重要的内存(正如我所期望的那样)。运行时 CPU 负载约为 50%。因此我无法重现该问题。

于 2009-10-05T12:43:47.953 回答
0

页面文件是系统资源,不能被任何用户进程操作。在这种情况下,页面文件的大小增加只是应用程序问题的一个症状——应用程序超出了提交限制。你必须处理问题,而不是症状。

于 2010-01-12T22:57:29.767 回答