看板 Fortran 關於我們 聯絡資訊
最近在做一個資料處理問題,問題簡述: 資料有20000個記事本檔案,每個檔案有兩欄各1200筆資料, 撰寫一支程式依序開啟這20000個檔案,並分別取出每個檔案中第100筆位置上的資料。 程式撰寫上沒問題,但在執行上另我滿疑惑,照理說做這種事情應該很快, 但是PRINT進度在螢幕上看目前進行到第幾個檔案讀取卻發現很慢, PRINT到螢幕大概是每10個檔案出現一次進度(確定並不影響效率), 執行很慢的時候發現CPU使用率並未全速, 以四核心CPU來說,合理應該使用25%,但變慢時只使用大概5%, 也確認過記憶體使用狀況並未暴增,也不應該會暴增, 幾番測試,發現造成變慢是在進行READ階段, READ是否就牽涉到電腦本身I/O部分,但不會涉及CPU使用率? 在READ部分變慢是否能夠改善? 也嘗試過檔案OPEN後,要CLOSE的處理,但並未改善。 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.242.151
wtula:硬碟比你想像的慢很多 循序讀檔更是慢 改用binary應該有幫助 03/10 02:36
wtula:印象中有一種技巧是把ascii檔當binary讀 不用改動原檔 03/10 02:41
wtula:不過個人沒試過就是了 03/10 02:42
Ballantine:可否另請問是否知道如何讓write直接是binary格式? 03/10 02:52
Ballantine:之前嘗試書上提到的參數,但一直都沒成功 03/10 02:54
Ballantine:上述問題確實是已經與CPU無關了,純粹卡在I/O上?! 03/10 02:55
jubilee2:樓上! 沒錯 @我試過 就算用RAMDISK 速度也沒變多快 03/10 10:24
jubilee2:s不信的話可以自己試試看! 03/10 10:24