perl - 如何避免重新处理已经在我的 Perl 脚本中处理过的输入?

标签 perl performance

我有一个巨大的 Perl 脚本(1500 多行),运行大约需要 8 个小时。

它从 HTML 生成 SQL,然后将其导入网站。基本上它是将整个论坛逆向工程为一个新论坛(我已获得许可)。

每次解析多年未更改的 HTML 时,脚本都会从头开始运行,然后将其作为哈希数组存储在内存中,直到解析完所有 HTML,生成 SQL。

我希望它将上次的结果预加载到内存中,然后只处理更改,但如何才能做到这一点?

最佳答案

那么你可以使用 YAML , JSON , Data::Dumper甚至 Storable转储/恢复任意复杂的 perl 数据结构。

(好吧,Storable 是一种二进制格式,人类无法读取并且兼容性选项有限,但有时它很好)。

您也可以使用 perl -d:DProf ./myscript.pl ; dprofpp 找出真正的弱点。 (不要在 8 小时版本中这样做 -- dprofpp 将永远持续下去)。

关于perl - 如何避免重新处理已经在我的 Perl 脚本中处理过的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5883747/

相关文章:

mysql - 高 CPU - 怎么办

performance - 编写一个简单的 JMeter 脚本

perl - git svn rebase导致 “byte order is not compatible”错误

xml - 如何使用 Twig 模块从 XML 中删除注释

ios - 加速从 SpriteSheet 创建 UIImage

带池 worker 的 Python 多进程 - 内存使用优化

sql - 在时间戳的流动窗口中查找罕见事件

Perl - 系统命令打印到终端?

perl - 如何在 perl 中转储字符串以查看是否存在任何字符差异?

perl - perl quine 的解释