如何避免重新处理已在Perl脚本中处理的输入?

Cra*_*aig 2 perl performance

我有一个庞大的Perl脚本(超过1500行)需要大约8个小时才能运行.

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

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

我希望将上次结果预先加载到内存中然后只处理更改,但是如何才能完成?

Dal*_*aen 5

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

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

您还可以perl -d:DProf ./myscript.pl ; dprofpp用来找出真正的弱点.(不要用8小时版本 - 那dprofpp将永远持续下去).