0

我有一个 Perl 脚本,它(截至目前)有 10 个子并且还在增长..

每个 sub 都在进行不同的 LWP-Call,并使用我在第一个 sub 中设置的变量。

由于每个子都需要一些时间,我正在寻找一种聪明的方法来使脚本运行得更快。

你会推荐什么?

我是不是该:

  • 将每个子放入单独的脚本中?
  • 立即呼叫潜艇(第一个除外)?
  • 使用不同的解决方案(我不知道)?

提前致谢!

编辑:该脚本正在从网络上获取一些 xml 和肥皂数据,然后提取必要的部分。

4

3 回答 3

0

我已经成功使用 Coro,并且已经有一个模块可以执行 LWP 请求。

http://metacpan.org/pod/LWP::Protocol::Coro::http

Coro 是协作例程,因此不是多线程的。还有一个 AnyEvent 变体

于 2013-06-28T23:22:45.497 回答
0

您可能需要检查 LWP::Parallel模块。

ParallelUserAgent 是现有 libwww 模块的扩展。它允许您获取 URL 列表(它目前支持 HTTP、FTP 和 FILE URL。HTTPS 也可以工作)并并行连接到所有这些 URL ,然后等待结果出现。

于 2013-06-28T23:54:42.507 回答
0

如果您不想,您不必拆分文件。只需列出要在 STDIN 上运行的内容,然后多次执行脚本,将每个进程置于后台,或者使用 cron 如果它正在进行中。

我建议您使用操作系统的进程,直到您有充分的理由不再这样做。

于 2013-06-29T01:30:36.150 回答