[問題] 有效率的文字檔案讀取方式
需要處理的資料,單筆固定 100 bytes
資料不會超過 30000 筆
但是不是全部資料都需要用到
請問用什麼方式去讀會比較好?
爬文爬到
作者 BETNPP (NPP) 看板 C_and_CPP
標題 Re: [問題] 比較有效率的文字檔案寫入方式
時間 Mon Aug 25 10:13:21 2008
───────────────────────────────────────
一次從硬碟讀多一點資料呢? 應該會比一直去跟硬碟小筆資料快
因為request次數變少了吧
之前處理過4GB的純文字檔就是用這樣處理的
我一開始的想法是,要使用資料的時候再去檔案讀
以每筆資料 70 bytes,30000 筆共 21 MB 的資料下去跑測試
一次讀一筆,讀入 30000 筆
共花 3714 毫秒
平均一筆資料 0.124 毫秒
再來試著一次讀取全部資料,一樣是那 21 MB 的測試資料
共花 108 毫秒
平均一筆資料 0.004 毫秒
問題在於,檔案有大有小,有些資料又不是全部需要
只有 100 筆資料時,一次讀取全部資料花 1 msec,分次讀取花 20 msec
一次讀取全部資料大概跟分次讀 5 筆資料消耗同等時間,一次讀取是比較好的選擇
但檔案大時
有可能共有 30000 筆資料且 30000 筆資料全部都需要,那一次讀取會快 40 倍
也有可能有 30000 筆資料但只需要其中 1 筆資料,那分次讀取會快 1000 倍
這時候一次讀取跟分次讀取各有勝場,無法比較
需要多少資料是看使用情況決定的,事前沒辦法猜測
可以確定的是,只需要一筆資料的機會不會太低
因為資料是照時間排序的,使用者有可能只需要最新的資料
請問有沒有比較好的方法處理這個問題呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.3.244
推
05/18 00:35, , 1F
05/18 00:35, 1F
→
05/18 01:30, , 2F
05/18 01:30, 2F
→
05/18 01:33, , 3F
05/18 01:33, 3F
→
05/18 01:34, , 4F
05/18 01:34, 4F
→
05/18 01:36, , 5F
05/18 01:36, 5F
推
05/18 14:18, , 6F
05/18 14:18, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章