我正在运行一个 Perl 脚本,该脚本解析了大约 7,000 个 HTML 文件中的信息。可能不太相关,但我只是想描述一下,这确实做了很多事情。我最初让他们直接将我正在寻找的信息打印到终端中,然后将其粘贴到我的电子表格中。然而,大约进行到一半时,我被告知内存不足,然后它就停止了。
Out of memory!
- 没有其他的
我搜索了一下,但找不到任何关于终端具体打印此内容的内容。我可以找到与 Linux 相关的帖子,说是内存不足,但我想确定一下。我试过让它写入 .txt 文件而不是打印到终端中,但没有成功。
我该如何修复这个问题并让 Perl 脚本完全运行?
答案1
不用与 perl 优化作斗争,而是使用这样的包装器:
wrapper.sh
#!/bin/bash
for i in `ls $1`
do
echo $i
<perl script> $i
done
使用方法如下:
./wrapper.sh *.html
因此,perl 脚本不再在一次运行中循环遍历 7k 个文件,而是对每个文件都重新开始。
我还建议您将输出重定向到文件而不是屏幕。如果将终端(xterm、gnome-term 等)设置为无限制缓冲区/行,则可能会用尽所有内存。