我有一個Perl腳本,它有(現在)10個潛艇和不斷增長..Perl:用於(分割)大型腳本的最智能和最快捷的方式?
每個子進行不同的LWP調用,並與我在第一個子集中設置的變量一起工作。
由於每個子需要一些時間,我正在尋找一種智能方法來使腳本運行得更快。
你會怎麼推薦?
我應該:
- 把每個子成一個單獨的腳本?
- 立即調用潛艇(第一輛除外)?
- 使用不同的解決方案(我不知道)?
在此先感謝!
編輯: 該腳本從網上獲取一些xml和soap數據,然後提取必要的部分。
我有一個Perl腳本,它有(現在)10個潛艇和不斷增長..Perl:用於(分割)大型腳本的最智能和最快捷的方式?
每個子進行不同的LWP調用,並與我在第一個子集中設置的變量一起工作。
由於每個子需要一些時間,我正在尋找一種智能方法來使腳本運行得更快。
你會怎麼推薦?
我應該:
在此先感謝!
編輯: 該腳本從網上獲取一些xml和soap數據,然後提取必要的部分。
您可能想檢查LWP::Parallel模塊。
ParallelUserAgent是對現有libwww模塊的擴展。它 允許您獲取一個URL列表(它目前支持HTTP,FTP, 和FILE URLs,HTTPS也可能工作),並且連接到所有這些URL 並行,然後等待結果進入。
謝謝,它最適合我的需求 – 3und80
我已經使用Coro成功了,並且已經有一個模塊可以執行LWP請求。
http://metacpan.org/pod/LWP::Protocol::Coro::http
科羅是合作的程序,因此不是多線程的。還有一個AnyEvent變體
非常感謝,但我更喜歡LWP :: Parallel模塊。 – 3und80
如果你不想分割文件,你不必分割文件。只需要列出一些在STDIN上運行的東西,然後多次執行腳本將每個進程放在後臺,或者使用cron(如果它正在執行)。
我會推薦使用操作系統的進程,直到你有一個很好的理由不再這樣做。
腳本中的10個子程序不是很多。分割腳本不會顯着影響運行時間,除非它巨大(數千行)。沒有關於腳本正在做什麼以及如何做的更多細節,很難再提供幫助。 – Barmar