看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 我有一段程式碼大概如下 (在某條thread中被執行) int timeStamp = GetTickCount(); while(100000) { timeStamp = GetTickCount() - timeStamp; fopen(some file); fprintf(timeStamp + some data); fclose(opened file); } 希望得到的正確結果: 程式跑出來的錯誤結果: TIMESTAMP 的值 幾乎都是零 有幾次會有1X左右的數值 fprintf的過程中 有可能會出現 str!=null的錯誤 想請問的是 1. gettickcount 是否有使用上的限制 (搞不太懂為什麼有時候會有數值有時候卻是零) 2. 如何避免 fprintf出現debug error的問題 3. 如果 問題一沒有辦法解答的話 是否有辦法計算 做一次的迴圈 的時間 (因上述gettickcount無效) 4. 好像有很多種寫檔方式 fopen, fstream, createfile, ....有沒有直接的效能分析? 因為處理檔案的過程很單純 希望能找一個比較有效率的方法 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) MFC VC++2005 有問題的code: (請善用置底文標色功能) 補充說明: 不曉得有沒有 明確定義硬碟寫檔限制的資料 或是參考 例如幾KB的檔案 和 幾MB的檔案 一次存會比較快 我知道小檔跟大檔 在硬碟存取上有差異 不過不曉得要怎麼GOOGLEE 才能找到比較的資料 所以請教一下各位 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.2.62
stupid0319:timeStamp = GetTickCount() - timeStamp;怪怪的 11/19 01:07
stupid0319:int startTimeStamp = GetTickCount(); 11/19 01:15
stupid0319:timeStamp = GetTickCount() - StartTimeStamp; 11/19 01:15
stupid0319:http://nopaste.csie.org/2586c 11/19 01:23
stupid0319:createfile一定是最快的fopen跟fstream都靠createfile 11/19 01:27