web-dev-qa-db-fra.com

Use of the memory of the memory of a number of the calendar of the Windows?

Le Gestionnaire des tâches indique l'utilisation totale de la mémoire à 90% de mes 6 Go, mais aucun processus n'utilise plus de 250 Mo de RAM et la somme de RAM utilisation de tous les processus en cours d'exécution est inférieure à 2 Go. J'ai essayé:

  • En regardant les numéros dans la colonne "Mémoire" de l'onglet "Processus" du Gestionnaire de tâches de Windows 8.
  • Examinez les colonnes "Ensemble de travail", "Ensemble de travail privé", "Ensemble de travail partagé" et "Taille de validation" dans l'onglet "Détails" du Gestionnaire de tâches.
  • En regardant des colonnes similaires liées à la mémoire dans Process Explorer.
  • J'ai essayé de faire fonctionner Sysinternals RAMMap, mais lors de la crise de mémoire insuffisante, il se bloque au lancement. Une fois le problème résolu, RAMMap s'exécute normalement, mais il est trop tard.

Tous montrent une assez petite quantité de mémoire utilisée.

Il y a beaucoup de gens qui demandent des variantes de cette question, avec différentes versions de Windows, partout sur Internet. Certains parviennent à résoudre leurs problèmes de mémoire insuffisante, souvent en réinstallant des logiciels; parfois en réinstallant des fenêtres à partir de zéro. Je cherche une réponse aux questions générales que tous partagent, et qui ne semblent jamais avoir de réponse ailleurs:

  1. Pourquoi la mémoire totale utilisée est-elle bien supérieure à celle utilisée par tous les processus répertoriés, quelle que soit la méthode employée pour les compter?
  2. Comment Windows pourrait-il "savoir" que la mémoire est utilisée sans savoir quel programme l’utilise?
  3. Quels processus peuvent éventuellement utiliser de la mémoire mais ne pas apparaître sur la liste?
  4. Existe-t-il un logiciel pouvant donner plus d'informations sur la mémoire utilisée?

Détails spécifiques à mon propre problème: Depuis la mise à niveau vers Windows 8.1, le problème se produit dès que je me connecte. Je manque de mémoire dès que j'ai exécuté un programme. J'ai remarqué dans Process Explorer que plusieurs instances de iexplore.exe étaient en cours d'exécution, apparemment démarrées automatiquement. Un cas particulier n’utilisait que quelques Mo de RAM, mais montrait des centaines de millions de fautes de page. Sur un coup de tête, j'ai tué ce processus spécifique et l'utilisation de la mémoire a immédiatement chuté de 70%.

Menant à une question spécifique:

  • Comment tuer un processus qui n'utilisait que quelques Mo libérait plusieurs Go?

Et une question bonus (probablement difficile):

  • À moins de réinstaller Windows, comment puis-je éviter de passer par là chaque fois que je redémarre mon ordinateur?
93
Josh

En passant, vous devriez essayer de ne pas utiliser le terme "mémoire". Cela crée beaucoup de confusion. Si vous voulez dire mémoire physique, dites "mémoire physique" ou "RAM". Si vous voulez dire mémoire virtuelle, dites-le. Si vous voulez dire magasin de soutien, dites-le.

Pourquoi la mémoire totale utilisée est-elle bien supérieure à celle utilisée par tous les processus répertoriés, quelle que soit la méthode employée pour les compter?

Parce que le système d'exploitation ne gaspille pas de mémoire physique (RAM) sauf s'il n'a pas le choix.

Comment Windows pourrait-il "savoir" que la mémoire est utilisée sans savoir quel programme l’utilise?

Parce qu'aucun programme ne l'utilise. Considérons, par exemple, la mémoire contenant le code d'un programme qui vient de se terminer. Aucun programme ne l'utilise. Mais cette mémoire est utilisée, car elle n’est pas libre et contient des données pouvant être utiles (au cas où le programme fonctionnerait à nouveau).

Quels processus peuvent éventuellement utiliser de la mémoire mais apparaître maintenant sur la liste?

Il n'est pas utilisé par les processus.

Existe-t-il un logiciel pouvant donner plus d'informations sur la mémoire utilisée?

RAMMap peut le faire.

Il n'y a que deux possibilités, RAM peut être utilisé ou gaspillé. Évidemment, le premier est meilleur. Toute mémoire disponible est à jamais perdue - une machine de 4 Go ne peut pas utiliser 2 Go aujourd'hui pour utiliser 6 Go demain. Si vous pensez "Je le veux gratuitement maintenant pour pouvoir l'utiliser plus tard", oubliez ça. Vous pouvez l’utiliser maintenant et l’utiliser plus tard.

Comment tuer un processus qui n'utilisait que quelques Mo libérait plusieurs Go?

Vous manquez de sauvegarde, pas de mémoire physique. Vous disposez de beaucoup de mémoire physique libre mais d'un magasin de sauvegarde insuffisant pour que le système d'exploitation continue à allouer de la mémoire virtuelle pouvant nécessiter une sauvegarde.

Le processus n'utilisait que quelques Mo de mémoire physique, mais le système d'exploitation aurait peut-être dû lui réserver plusieurs Go de mémoire virtuelle sauvegardée. Par exemple, supposons qu'un processus crée un mappage de mémoire privée accessible en écriture pour un fichier de 2 Go. Le système d'exploitation doit réserver 2 Go de mémoire virtuelle sauvegardée pour le processus, car il peut écrire dans chaque octet de ce mappage. En outre, il pourrait ne jamais écrire à aucun d'entre eux. C'est pourquoi vous avez besoin d'un fichier d'échange de bonne taille.

Les systèmes d'exploitation modernes écrivent beaucoup de chèques (backing store prometteur) qui ne seront jamais encaissés (nécessitent de la mémoire vive). Vous ne pouvez pas continuer à envoyer des chèques (backing store prometteur) même si vous avez beaucoup d’argent à la banque (RAM libre) si vous avez déjà écrit un tas de gros chèques qui pourraient ou ne pourraient pas être encaissés (promis autant comme vous avez). Les fichiers d'échange ajoutent une banque de sauvegarde, ce qui permet au système d'exploitation de continuer à écrire des vérifications.

9
David Schwartz