我需要將數據寫入驅動器。我有兩個選擇:將原始數據寫入驅動器或寫入文件會更快嗎?
- 寫入原始的扇區(_寫(手柄,p緩衝器,大小);)
- 寫入到一個文件中(FWRITE(p緩衝器,大小,計數,PFILE);)
哪種方式更快?
我期望原始扇區寫入函數_write更高效。但是,我的測試結果失敗了! fwrite速度更快。 _花費時間更長。
我粘貼了我的代碼片段;也許我的代碼是錯誤的。你能幫我嗎?無論哪種方式,是我好,但我覺得生寫比較好,因爲它似乎在驅動器中的數據至少是加密....
#define SSD_SECTOR_SIZE 512
int g_pSddDevHandle = _open("\\\\.\\G:",_O_RDWR | _O_BINARY, _S_IREAD | _S_IWRITE);
TIMER_START();
while (ulMovePointer < 1024 * 1024 * 1024)
{
_write(g_pSddDevHandle,szMemZero,SSD_SECTOR_SIZE);
ulMovePointer += SSD_SECTOR_SIZE;
}
TIMER_END();
TIMER_PRINT();
FILE * file = fopen("f:\\test.tmp","a+");
TIMER_START();
while (ulMovePointer < 1024 * 1024 * 1024)
{
fwrite(szMemZero,SSD_SECTOR_SIZE,1,file);
ulMovePointer += SSD_SECTOR_SIZE;
}
TIMER_END();
TIMER_PRINT();
寫的原始數據是不加密的話 - 它只是混淆用戶... – bdonlan
+1分析。 (儘管這個問題在我頭頂) – GManNickG
要bdonlan:我只是希望它看起來就像是encrypted..invisible用戶 –