※ 引述《streit.bbs@aeug.twbbs.org (亞斯爾‧馮‧修特萊)》之銘言:
: 這是電信相關的 不同間的電信都會有LOG互相比對
: 來確定對方有沒有多加秒數多收錢
: 現在兩家的LOG要互相比對 我設計一個STRUCT去把需要比對的資料分析後放進去
: 內容大致上是 電話號碼 通話開始時間 通話結束時間 通話秒數 等等幾項
: 現在問題是光將檔案約61萬筆資料讀到陣列中
: 每筆就要花一秒的時間 61萬筆就要花掉166個小時以上 約6天半
: 這樣效率實在是很差 是否有更快速的方式可以將資料丟到陣列中呢?
: 語言是C/C++ 工具BCB 檔案內容會先放到StringList中
: 再逐一從StringList中拉出來一個一個分析
CreateFileMapping() + MapViewOfFile(), 立即對映到記憶體上,一秒都不用。
而 61 萬筆資料,了不起 500MB 吧,全部掃描一次,建立字串的索引,也不過是
一分鐘的事情,還不需要太好的機器。
166 小時,真是太神奇了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.223.231.25