Quelles sont les causes de défaut de page et comment les réduire?
Lors de l'examen d'un processus dans Process Explorer, ce qui veut dire quand il y a plusieurs défauts de page? L'application est en cours de traitement des données et l'INTERFACE n'est pas très réactif. Existe-il des optimisations du code, qui pourraient réduire ou d'éliminer les défauts de page? Serait l'augmentation de la RAM physique du système de faire une différence?
OriginalL'auteur User1 | 2010-02-10
Vous devez vous connecter pour publier un commentaire.
http://en.wikipedia.org/wiki/Page_fault
L'augmentation de la quantité de RAM sur votre machine, pourraient limiter le nombre de défauts de page, bien que les modifications de conception de votre application va faire beaucoup mieux que l'ajout de RAM. En général, avoir une plus petite empreinte mémoire, et d'avoir des choses qui vont souvent être consulté dans le même temps sur la même page diminution du nombre de défauts de page. Il peut, également, être utile d'essayer de faire tout ce que vous pouvez avec quelques bits de données dans la mémoire de tous à la fois, de sorte que vous n'avez pas besoin d'accéder à de nombreuses reprises différentes, ce qui peut provoquer des défauts de page (aka raclée).
OriginalL'auteur Brett Widmeier
Il pourrait également être utile pour s'assurer que la mémoire est accessible uns après les autres, est à proximité les uns des autres (par exemple, si vous avez quelques objets, les placer dans un tableau) si ces objets ont beaucoup de données qui sont très rarement utilisés, les placer dans une autre classe et de faire de la première classe ont une référence à la deuxième. De cette façon, vous permettra d'utiliser moins de mémoire la plupart du temps.
OriginalL'auteur Ritsaert Hornstra
Une option de conception serait d'écrire un mémoire cache du système, paresseux de la création de la mémoire (créer sur demande). ces cache aurait une collection de pré-alloué de la mémoire de morceaux, accessibles par leur taille. Par exemple, un tableau de N listes, chaque liste de M avoir tampons.chaque liste est responsable pour vous apporter de la mémoire dans une certaine gamme de taille. (par exemple, dans chaque liste vous apportant de la mémoire dans la gamme de 2^i (i = 0..N-1). même si vous souhaitez utiliser moins de 2^i, que vous venez de ne pas utiliser de la mémoire supplémentaire dans la mémoire tampon.
ce serait un compromis de la petite de la mémoire des déchets, vs la mise en cache et moins de défauts de page.
une autre option est d'utiliser nedmalloc
bonne chance
Lior
OriginalL'auteur Lior