2017-10-13 5 views
-2

Mon humble préoccupation est la suivante:la consommation excessive de mémoire dans vide Win32 C++ app

Présélections:

  1. Achat de Windows 10 et installez-
  2. Téléchargez et installez Visual Studio 2017, Communauté, la version 15.2
  3. Configurer pour
  4. C++ Créer un nouveau projet C++, application Win32 avec les paramètres de base (sans ATL, non-console)
  5. terme de construction et le débogage (voir comment une fenêtre vide apparaît)
  6. Observer la mémoire de processus (dans les VS2017 ou tout autre outil)

Mes observations:

L'exécutable lui-même est (150 kB). App elle-même - lors de l'exécution - commence en prenant 2 Mo de mémoire. Sans le durcir, la consommation de mémoire change; parfois pousse parfois diminue (mon max est maintenant de 3 Mo après quelques minutes à 30 minutes d'observation du périon). Vous pouvez même le minimiser au démarrage et observer la consommation de mémoire en utilisant Visual Studio ou le moniteur de performances. Je ne vois rien sur les octets d'E/S, je ne peux pas en être sûr.

Mes questions sont les suivantes:

  1. Que prend tant la mémoire?
  2. Pourquoi l'utilisation de la mémoire varie au cours du temps sans interactions avec l'utilisateur?

Merci!

+1

Je gaspille quelques mégaoctets chaque fois que j'éternue, donc je ne pense pas que cela m'inquiète. Tout processus entraîne des frais généraux juste pour le démarrage. 'std :: cin',' std :: cout', et d'autres objets ne poussent pas exactement sur les arbres. De plus, sur MS-Windows, le processus supplémentaire est de devoir supporter une fenêtre ouverte. Cela ne coûte pas exactement zéro octet, non plus. –

+4

Comparé aux 751 Mo que le chrome utilise actuellement, non, ce n'est pas grand-chose. – NathanOliver

+3

Avez-vous compilé en utilisant 'release' ou' debug'? –

Répondre

2

L'utilisation de la mémoire de 3 Mo d'une application vide est-elle vraiment satisfaisante pour vous?

Oui, c'est bon pour moi.

Si tel est le cas, pourriez-vous m'expliquer pourquoi?

Parce que j'ai 4GB ou several terabytes de l'espace d'adressage virtuel pour épargner.

+0

@ FrançoisAndrieux: Si c'était le cas, pourquoi poser la première question alors? – IInspectable

+0

Après avoir relu la question, je pense que votre interprétation est correcte. Je vais retirer le commentaire. –