作者gwliao (gwliao)
看板CSSE
標題Re: [問題] 檔案切割的問題...
時間Tue Oct 18 01:39:47 2005
※ 引述《bendon (bendon)》之銘言:
: 請問各位好人...
: 我目前因為論文需要...
: 有DATA檔案很大800M左右需要分析(都是數字 所以用.txt打開就可以了)
: 太大打開不了
你在Windows上, 我不熟, 但應該有切開file的程式.
在Linux上, 假如DATA沒有要再修改的話, 用mmap().
要再修改DATA的話, 看如何改,再想因應的對策!
以下是我的經驗:
約6年前, 我還在做Computer Architecture的研究時, 就遇到類似這問題!
當時資料也是文字檔,都是16進位的數字, 10幾個數字一筆(or說一行也可以)
file size很大(超過1G), 而且資料才收集到一點 Orz
還不是全部的DATA, 我就受不了 :O
當時就將那10幾個16進位的數字(文字)全部變成binary,
這樣size縮小了, 還不夠!
再改程式, 將輸出改成每1百萬筆資料一個file.(file nmae由000~999).
但是還不夠....我的HD不夠大, 資料量太大,
所以我就將資料做壓縮! 自己寫? 別傻了, 自己寫的程式壓縮率不好又慢 Orz
當然是選市面上好用的 :)
反正當資料寫到需要close file時, 再關檔後補個system()就好了 XD
只是每次讀資料都蠻麻煩, 要先選file, 然後再解壓縮, 最後才可以開檔讀取!
但這是我覺得可行的方法! 因為資料跑一次要2 week以上,
然後我要分析那些資料, 而且所開發的東西還沒定型,
分析那些資料還要分析個幾十次也說不定.
資料量多大? 我事後算過約800G (假如用最初的文字檔來算,壓縮程式,萬歲 ^O^ )
所以當data size大到一定程度時, 要以更嚴謹的態度去面對data access的問題!
上面哪些都是一步一步地去想,去做,去確認問題,再重新檢視全部的方法和問題.
Plan->Do->Check->Review (一直loop, 直到問題不能再被改善為止:) )
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.230.125
※ 編輯: gwliao 來自: 140.112.230.125 (10/18 01:42)
推 cruise:windows好像有個filemap的東西可以用,類似swap的模式 10/18 11:36
→ cruise:聽說速度還不算太慢...orz..聽某個橘子公司的人說的.. 10/18 11:37
→ cruise:這樣會比切成幾個檔案來的好,因為一切開總是會有lost... 10/18 11:39
→ cruise:那麼分析方法就要相對應去調整...相當orz... 10/18 11:40