При исследовании процесса в Проводнике Процесса, что означает то, когда существует несколько отсутствий страницы? Приложение обрабатывает довольно мало данных, и UI не является очень быстро реагирующим. Там оптимизация к коду, который мог уменьшить или устранить отсутствия страницы? Был бы, увеличивая физическую RAM системы, имеют значение?
http://en.wikipedia.org/wiki/Page_fault
Увеличение физического ОЗУ на вашем компьютере может привести к меньшему количеству ошибок страниц, хотя конструкция изменения в вашем приложении принесут гораздо больше пользы, чем добавление ОЗУ. В общем, меньший объем памяти и то, что вещи, к которым часто будут обращаться примерно в одно и то же время, будут находиться на одной и той же странице, уменьшат количество ошибок страниц. Также может быть полезно попытаться сделать все, что в ваших силах, с некоторым битом данных в памяти одновременно, чтобы вам не приходилось обращаться к ним много раз, что может вызвать сбои страниц (также называемые перебоями).
Также может быть полезно убедиться, что память, к которой осуществляется доступ после друг друга, находится рядом друг с другом (например, если у вас есть несколько объектов, поместите их в массив), если эти объекты имеют много данных, которые используются очень редко. , поместите его в другой класс и сделайте так, чтобы первый класс имел ссылку на второй. Таким образом вы будете использовать меньше памяти большую часть времени.
Вариантом дизайна может быть написание системы кэширования памяти, лениво создающей память (create on demand). Такой кэш будет иметь коллекцию предварительно выделенных кусков памяти, доступ к которым осуществляется по их размеру. Например, массив из N списков, каждый список имеет M буферов. Каждый список отвечает за предоставление памяти в определенном диапазоне размеров. (например, каждый список приносит память в диапазоне 2^i (i = 0..N-1). даже если вы хотите использовать меньше 2^i, вы просто не используете дополнительную память в буфере. Это будет компромисс между небольшими потерями памяти, кэшированием и меньшим количеством ошибок страниц.
Другой вариант - использовать nedmalloc
Удачи! Lior