Я пишу приложение, которое должно обрабатывать большие объемы данных (от 1 до 10 ГБ) в режиме реального времени, насколько это возможно.
данные присутствуют в нескольких двоичных файлах данных на жестком диске, каждый размером от нескольких килобайт до 128 МБ.когда начинается процесс, сначала решается, какие данные действительно нужны.затем некоторые пользовательские настройки берутся через пользовательский интерфейс, а затем данные обрабатываются порцией за порцией, где всегда файл загружается в память, обрабатывается и затем удаляется из памяти.эта обработка должна быть быстрой, потому что пользователь может изменить некоторые настройки, а затем обработать те же данные, и это взаимодействие с пользователем должно быть максимально быстрым.
Теперь загрузка с диска является довольно узким местом, и я хотел быПредварительная загрузка данных уже на этапе, когда решается, какие файлы будут использоваться.однако - если я предварительно загружу слишком много данных, ОС будет использовать виртуальную память, и у меня будет много сбоев страниц, что сделает обработку еще медленнее.
как определить, сколько данных нужно предварительно загрузить, чтобы сохранить сбои страницнизкий?могу ли я как-то повлиять на ОС на то, какие данные я хочу сохранить в памяти?
спасибо!
// edit: я сейчас работаю на Windows 7 64 (однако приложение 32-битное)и приложение не должно запускаться на каком-либо компьютере - только на конкретном, поскольку это исследовательский проект.