Тормоз здесь всё равно дисковая система, так что просто копируй большими ломтями из одного и пиши в другой.
В смысле выравнивать? Обычно они всегда выровнены по степени 2. Размер в принципе чем больше тем лучше, тут уже надо опытным путём. Хотя у меня запись более нескольких килобайт уже не имело эффекта.
Asterix Можно попробовать поиграться с флагами FILE_FLAG_NO_BUFFERING и FILE_FLAG_OVERLAPPED. Должно быть эффективнее, т.к. не будет синхронизации с кешем и его засорения.
с диска читается сугубо секторами. так что, лучше всё же выравнивание обеспечить на размер сектора, а еще лучше - размер кластера.
n0name А как обеспечить? Это же не файловой, а физическое адрес. К тому же кэширование, плюс работа большими блоками должны устранить эту проблему.
А что винда при размещении файлов в файловой системе не может начало файла выровнять по границе? вобщем сделал с выравниванием на 4096 байт, и чтением блоками по 4096 байт, вроде быстренько работает
Поиск по форуму: Оптимизация работы с БД на асме Mapping в разных версиях Windows Быстрое копирование файла