Tôi cần ghi dữ liệu vào ổ đĩa. Tôi có hai lựa chọn:Nhanh hơn, ghi dữ liệu thô vào ổ đĩa hoặc ghi vào một tệp?
- viết thành phần thô (_ write (xử lý, pBuffer, kích thước);)
- ghi vào một tập tin (fwrite (pBuffer, kích thước, đếm, pfile);)
Cách nào nhanh hơn?
Tôi đã dự kiến chức năng viết thuộc lĩnh vực thô, _write, để có hiệu quả hơn. Tuy nhiên, kết quả thử nghiệm của tôi không thành công! fwrite nhanh hơn. _write chi phí thời gian lâu hơn.
Tôi đã dán đoạn trích của mình; có lẽ mã của tôi là sai. Bạn có thể giúp tôi không? Dù bằng cách nào cũng được tôi, nhưng tôi nghĩ rằng viết thô là tốt hơn, bởi vì có vẻ như dữ liệu trong ổ đĩa được mã hóa ít nhất ....
#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();
Viết dữ liệu thô không được mã hóa chút nào - nó chỉ gây nhầm lẫn cho người dùng ... – bdonlan
+1 cho lược tả. (Mặc dù câu hỏi này nằm phía trên đầu của tôi) – GManNickG
Để bdonlan: Tôi chỉ muốn nó trông giống như được mã hóa ... ẩn với người dùng –