[討論] C語言最快讀檔寫法

作者: nz22556 (出門遇到鬼)   2014-12-14 16:57:27
各位大神大家好
小弟最近在研究C語言的讀檔
因為我的檔案不小幾百M到1G都有可能
我使用的方法是getline以後將資料切割push到vector裡面
但是這樣做讀檔速度會非常久
想知道有沒有比較快的實作方式
謝謝大家
作者: diabloevagto (wi)   2014-12-14 17:01:00
mmap?
作者: fireslayer (fireslayer)   2014-12-14 18:09:00
Vector 先resize看看
作者: ZanFu5566 (仁甫56 優質56 清新56)   2014-12-14 18:18:00
久是多久?
作者: kwpn (ITSST)   2014-12-14 18:25:00
先reserve吧? 讀檔速度會非常久是跟什麼比?
作者: pico2k (風月)   2014-12-14 21:43:00
改用SSD吧...
作者: ggglassese (鏡)   2014-12-14 21:43:00
linux? mmap
作者: Caesar08 (Caesar)   2014-12-14 21:50:00
C語言?vector?
作者: LiloHuang (十年一刻)   2014-12-14 22:22:00
把資料都擺進去 RAM disk,只有 1GB 的資料其實不大...亦可先把資料全部讀到 memory,用 sstream + getlinemmap 也可以試試看,多數硬碟循序讀取的性能都不算差
作者: ACMANIAC (請肥宅救救肥宅)   2014-12-15 02:10:00
getline、push、vector... 怎麼看都是 C++
作者: andyyao (Andy_Yao)   2014-12-15 11:58:00
mmap + 1
作者: m80126colin (許胖)   2014-12-15 17:19:00
fgets
作者: Killercat (殺人貓™)   2014-12-16 13:26:00
mmap, 不要煩惱快取這種事情,交給系統煩惱吧
作者: tubbysong (song)   2014-12-23 02:45:00
buff越小越慢,get line 其實一次讀一字,指定大小最快

Links booklink

Contact Us: admin [ a t ] ucptt.com