精華區beta Programming 關於我們 聯絡資訊
※ 引述《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