看板 CSSE 關於我們 聯絡資訊
※ 引述《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