Re[3]: Самый быстрый способ скинуть данные в файл
От: Аноним  
Дата: 16.05.07 10:10
Оценка:
_>А я и имел в виду, при каком использовании API запись на HDD будет производиться наиболее эффективно

NtCreateFile() с флагом FILE_NO_INTERMEDIATE_BUFFERING. Также флаг FILE_WRITE_THROUGH нужен если хочешь, чтобы данные были зафлашены на диск немедленно. Более быстрый путь — соответствующий запрос к драйверу FS. А самый быстрый путь — это, конечно, так (весьма приблизительно):

1. Залочить диск
2. Получить смещение достаточного свободного участка на диске.
3. Получить смещение пустой ячейки для новой записи в таблице файлов
4. Послать запрос к драйверу FS на запись RAW-данных файла по смещению, найденному в п.1
5. Послать запрос к драйверу FS на запись RAW-данных записи файла по смещению, найденному в п.2
6. Разлочить диск

А вообще зачем тебе такая супер-пупер скорость? Большое кол-во данных хочешь писать?

_>а вызов функции из более низкоуровневой прослойки ИМХО не делает сильной разницы для этой, довольно долгой операции — записи на диск.


Ну всё же какая-то экономия
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.