2010-09-24 7 views
0

Si vous utilisez GlobalMemoryStatusEx pour obtenir des statistiques, l'une est dwMemoryLoad, soit le pourcentage approximatif de la mémoire physique utilisée. La mémoire utilisée par SuperFetch est-elle ajoutée à dwMemoryLoad? Je travaille sur un logiciel qui utilise cette statistique pour gérer sa propre mise en cache, vider le cache lorsque le pourcentage est trop élevé. Je suis inquiet que SuperFetch provoque de faux résultats.Est-ce que SuperFetch affecte le pourcentage de dwMemoryLoad et entre en conflit avec la gestion de la mémoire intelligente?

Lecture à propos de SuperFetch, les utilisateurs de jeux sur Vista often say l'éteindre améliore les performances. Cela confirme mon hypothèse que SuperFetch va provoquer une application à croire faussement plus de RAM physique est utilisée que ce qui est réellement utilisé par les applications en cours d'exécution.

Le Vista Kernel posting de Mark Russinovitch a une bonne explication de SuperFetch. Dans un exemple intéressant où le gestionnaire des tâches original est plus informatif que Sysinternals Process Explorer, Jeff Atwood a des photos du Physical Memory usage with Superfetch dans le Gestionnaire des tâches.

alt text

Notez le 6MB sans mémoire physique! Je ne suis pas seulement fainéant - toutes nos machines de test 32 bits exécutent XP et j'ai seulement accès à des machines Vista ou Windows 7 64 bits, donc je voudrais toujours entendre des gens sur la façon dont cela affecte 32 systèmes de bits.

+0

Un point intéressant à partir d'autres tests - si vous appelez la fonction précédente GlobalMemoryStatus sur une machine avec plus de 4 Go de RAM, le résultat dwMemoryLoad est toujours valide. Les autres chiffres ne sont que des valeurs DWORD qui débordent. –

Répondre

0

Tentativement, la réponse est non il n'est pas inclus - la quantité mise en cache est accumulée séparément.

J'ai allumé SuperFetch sur mon ordinateur Vista x64 (intéressant de noter qu'il était éteint pour une raison quelconque) et construit le programme d'exemple dans les docs GlobalMemoryStatusEx. A l'heure avec peu de passe sur ma machine, l'échantillon rapportait 50% de mémoire utilisée mais le gestionnaire de tâches de Windows a montré les statistiques de la mémoire physique de:

  • total 4093
  • Cached 2285
  • gratuit 92