我运行一个脚本,对文件系统进行文本操作。
脚本在文本文件(.h,.cpp)上运行。
当脚本运行时,我看到PF使用量增加,直到达到为页面文件分配的VM量。
有没有办法在运行期间或之后刷新VM?
我已经提出了另一个问题(认为这是另一个问题): Single sed command for multiple substitutions?
答案 0 :(得分:1)
Chunk 或批量您的操作,以便您可以更有效地使用内存,而不是只将所有内容加载到内存中。如果您的文件都不大,请限制将文本从这些文件加载到内存中的线程数。如果使用大文件,请使用您拥有的内存将其分解以更有效地处理它们。
答案 1 :(得分:0)
不,但也许您可以更改脚本以减少内存消耗。
<强>更新即可。我试图在Linux上重现问题,对应于 other question中列出的脚本。在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%。因此我无法重现这个问题。
答案 2 :(得分:0)
页面文件是系统资源,任何用户进程都无法操作。在这种情况下,增加大小的页面文件只是应用程序问题的症状 - 应用程序超出了提交限制。你必须处理问题,而不是症状。