[問題] 讀文字檔及搜尋字串的效率
平常自己都在 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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章