我有一个perl脚本,当我的脚本运行时,高优先级进程就会被自动化作业杀死~300个并行作业用于下载数据并占用大量内存。我想弄清楚在运行时需要多少内存,这样我可以在调度脚本之前要求更多内存,或者如果我知道使用某个工具我的代码中占用更多内存的部分,我可以优化它的代码。
答案 0 :(得分:1)
关于OP对该问题的评论,如果您想最小化内存使用,一定要一次收集和追加数据/行。如果您一次将所有内容收集到一个变量中,这意味着您需要将所有内容一次性存储在内存中。
关于问题本身,您可能想要查看是否可以让Perl代码只运行一次(而不是运行300个单独的实例),然后fork
来创建您的个人工作进程。当你fork
时,子进程将比不相关的进程更有效地与父进程共享内存,因此你将需要在内存中只有一个Perl二进制副本而不是300副本。