作者banco (Acoustic)
看板Perl
标题[问题] 读文字档及搜寻字串的效率
时间Thu May 8 11:22:38 2008
平常自己都在 Linux 下操作程式
後来发现把相同程式转到 Windows 平台上执行
效率竟是天差地远 [注]
烦请诸位大德拨冗替小弟解惑
(1)
我手边有个文字档, 约 27MB
在搜寻想要的字串时,
我一向用 @file = <FH>; 把内容倒进 @file 後再处理
然後再针对 @file 的内容, 一列一列地进行检查
不晓得 @file = <FH> 会不会是一个多余的动作
会不会直接用 foreach (<FH>) 效率会比较好些?
(2)
另外有没有方式可以把符合条件的列, 一次全挑出来
档案里每一列资料格式如下所示, 每一列皆有三个栏位
str_Code str_Tag str_Property
我的主要工作是把 str_Tag 相同的列挑选出来
目前我用回圈的方式, 一列一列检查, 符合者 push 进另一个阵列
有没有方式能直接对 <FH> 进行匹配动作, 将符合的资料一次抓取出来
如果有, 其效率与回圈方式相比, 何者尤佳?
[注]
同一支程式, 在 Ubuntu 下跑花 5 秒
(Intel P4 Core2Dual 2.3 GHz, 3G RAM)
但在 Windows 下却要花 180 秒
(Intel P4 3.2G, 2G RAM)
我想差距应该不至於如此庞大, 但不知差距从哪个环节产生
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.206.121