Нужны советы по выбору файловых API win32 - PullRequest
0 голосов
/ 28 января 2020

Когда я пишу лексер, я хочу избежать как можно большего количества выделений, поэтому я начну с получения размера файла, чтобы выделить кучу токенов на основе heuristi c. Делая это, я спрашивал себя, может ли ядро ​​Windows получить размер файла с GetFileSizeEx, не читая его полностью, что добавит задержку, прежде чем я смогу начать lexing?

Файловая система начинает заполнить кэш памяти сразу, когда дескриптор файла открыт? Потому что GetFileSizeEx нужен открытый файл.

И после того, как я рассматриваю чтение моего файла асинхронно с ReadFileScatter или ReadFileEx. Но я не могу понять, в чем реальная разница между этими функциями, так как ReadFileEx можно использовать с двойной буферизацией, чтобы можно было преобразовывать фрагмент, когда следующий заполнен в фоновом режиме.

Кажется, что ReadFileScatter быть немного более сложным в использовании, так как чанки должны быть предварительно выделены с начала, с памятью, выровненной по системным страницам. Кто-нибудь знает, почему это так?

Как насчет функций FileMapping, это может быть интересно для моей цели?

PS: файлы будут открыты в течение всего срока службы приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...