我运行一个脚本,对文件系统进行文本处理。页面文件的使用
脚本在文本文件(.h,.cpp)上运行。
当脚本运行时,我看到PF使用率增加,直到它达到分配给页面文件的VM数量。
有没有办法在运行过程中或之后刷新虚拟机?
我已经运行结束关于这一个问题(认为这是不同的问题): Single sed command for multiple substitutions?
我运行一个脚本,对文件系统进行文本处理。页面文件的使用
脚本在文本文件(.h,.cpp)上运行。
当脚本运行时,我看到PF使用率增加,直到它达到分配给页面文件的VM数量。
有没有办法在运行过程中或之后刷新虚拟机?
我已经运行结束关于这一个问题(认为这是不同的问题): Single sed command for multiple substitutions?
没有,但也许你可以更改脚本消耗更少的内存。
更新。我试图在Linux上重现这个问题,对应 other question中列出的脚本。在击:
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%。因此我不能重现这个问题。
大块或一批您的操作,这样就可以更有效地使用你的记忆,而不是只加载的一切到内存中。如果您的文件都不大,请限制将这些文件中的文本加载到内存中的线程数。如果使用大文件,请使用您拥有的内存更高效地处理它们。
请参阅上面评论中我使用脚本的方式。我不能大块或批量它。消耗内存的原因是因为我运行它非常大量的文件。 – Asaf 2009-10-05 12:57:33
在某些时候,您并未释放您正在使用的内存。把这个过程分解成可管理的部分,你的记忆问题将变得可管理。更糟糕的情况下,您可以终止进程,并希望GC能为您刷新内存。 – 2009-10-05 13:03:04
pagefile是一个系统资源,不能被任何用户进程操纵。在这种情况下,增加大小的页面文件只是应用程序问题的症状 - 应用程序超出了提交限制。你必须处理问题,而不是症状。
脚本写了什么编程语言?你可以透露一些或全部脚本的问题吗? – 2009-10-05 12:47:06
我在问题中添加了一个链接 – Asaf 2009-10-05 13:26:21
这个问题被标记为“windows”。你如何在Microsoft Windows上运行sed?使用Cygwin? – 2009-10-05 22:51:56