[問題] 讀文字檔及搜尋字串的效率

看板Perl作者 (Acoustic)時間17年前 (2008/05/08 11:22), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
平常自己都在 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
文章代碼(AID): #188d7_6w (Perl)
文章代碼(AID): #188d7_6w (Perl)