服务器没有限制的话,开100个线程下载xml文件试试,同时可以尝试用另外一个程 序进行XML的处理。同时要注意硬盘空间是否被撑爆。
yi wang wrote: > “边算边标记那些是处理过的,比如 move 到另一个目录。这样不必 > fork/thread ... IPC,就是两类进程的分工。”---没看懂,能否再讲清楚些? > > 2009/8/13 joe jiang <[email protected] <mailto:[email protected]>> > > 最简单的细分是这样的: > 看看5秒中里面那些是 I/O,那些花在计算。个人感觉是其中没有多少花在 > 计算。 > 最好是一次多些下载,然后慢慢在后台计算。边算边标记那些是处理过的, > 比如 move 到另一个目录。这样不必 fork/thread ... IPC,就是两类进程 > 的分工。 > > > 2009/8/13 yi wang <[email protected] <mailto:[email protected]>> > > 我现在知道的是可以用c的poll,或者直接使用外部调用wget,但是从 > perl的script调用一个外部程序貌似也有效率损失啊。还有更好的方法吗? > > 2009/8/13 yi wang <[email protected] > <mailto:[email protected]>> > > Hi, all! > 请教一个性能方面的问题,应该是常碰到的吧。 > 需要下载远程xml文件(千万量级的文件数量,每个有10k左右)并 > 进行处理后保存(处理后每个约3k)。 > 现使用的是get函数,一次请求若干xml后,直接调用xml::smart > 进行xml相关内容的提取,而后进行我们的计算,然后保存为新的 > 若个个xml 文件。速度非常非常的低,平均5秒/xml,无法完成要 > 求(照这个速度得用两年时间)! > 想请教各位,除了提升处理算法的速度,有没有什么其他的办法提 > 高整体性能。比如我用的请求函数是否还有更好的,xml处理时候 > 还有更好的,用多线程/多进程,文件打开、保存、关闭的方式 > 等,有没有什么建议?搜索引擎的爬虫也会做类似更高难度的工 > 作,不知道是怎么做的,有没有什么可以借鉴的?另外,有没有人 > 做过这种IO计算都密集的程序,用c和perl的效率比较? > > > > > > > > > > > -- > 和你在一起 > > -- Perl乐事 -- http://www.perlersh.org 我的博客 -- http://www.perlersh.org/blog.html --~--~---------~--~----~------------~-------~--~----~ 您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。 要在此论坛发帖,请发电子邮件到 [email protected] 要退订此论坛,请发邮件至 [email protected] 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛 -~----------~----~----~----~------~----~------~--~---
