-
Page faults ?
Bonjour,
Si on prend le temps de regarder le gestionnaire des taches, on peut remarquer que tous les programmes génères des "erreurs de pages" ou "page faults", dans une application plutôt simple mais qui boucle pas mal via un timer, au bout de quelques dizaines d'heures j'en suis à 15 millions d'erreurs de pages... l'appli tourne impec, pas de fuite mémoire (la ram bouge pas), mais disons que ça fait peur aux utilisateurs ^^
Je n'ai pas réussi a trouver de la doc ou des explications claires sur le net, avez vous une idée afin de réduire ces erreurs ?
ps : je compile avec l'unité Fastmm, ce qui réduit pas mal ces erreurs, mais ça monte toujours...
-
Bonjour,
Les erreurs de type "page fault" ne sont pas vraiment des erreurs en soit. Ce sont des exceptions lancées par la MMU (Memory Management Unit) lorsque l'accès à une page mémoire nécessite d'aller la chercher en cache car elle n'est plus en mémoire vive.
Toutes les données (programme, variables, etc...) sont stockées en mémoire, et la mémoire est découpée en pages. Le gestionnaire de mémoire essaie de conserver les pages utilisées en mémoire vive, mais lorsque ce n'est plus possible, il faut faire appel au cache.
Pour limiter les fautes de pages, il faut soit regrouper les variables ensemble, mais c'est difficile du fait des optimisations faites par les compilateurs, soit utiliser moins de programmes en même temps, de façon à laisser un maximum de mémoire vive pour l'application, soit installer plus de mémoire vive :)
@++
-