Comparez l'empreinte mémoire des applications.Net et VB6



performance memory (1)

Il y a un bon essai à ce sujet par Mark Russinovich.

Vous pouvez réduire manuellement le jeu de travail de votre application à l'aide de l'appel d'API Win32 SetProcessWorkingSetSize (GetCurrentProcess (), -1, -1). C'est ce que Windows fera de toute façon lorsque le système est à court de mémoire, mais contrôler quand cela se produit vous permet de réduire la taille minimale de votre application .NET à des fins d'investigation.

J'ai essayé de comparer l'empreinte mémoire entre une application VB6 et une application .Net. Essayer de déterminer quelle est la différence moyenne entre les deux.

Le code .Net est pour la plupart une traduction directe du VB6 et a pour la plupart les mêmes instructions que celles qui seraient programmées en C #. Donc, bien qu'il s'agisse d'une comparaison pomme-oranges, il s'agit d'une comparaison sur des programmes qui sont fonctionnellement (sinon logiquement) équivalents.

J'ai utilisé Process Explorer pour m'aider à déterminer l'utilisation de la mémoire des applications, mais il y a quelques domaines qui m'ont laissé perplexe:

  1. J'ai essayé de déterminer la consommation globale de la mémoire. Laquelle des colonnes de mémoire de processus dois-je utiliser. Jusqu'à présent, j'ai regardé les jeux de travail.
  2. Pour comparer la taille des DLL au sein d'une application, PExplorer affiche la taille, WS Total et d'autres compteurs WS, comment peuvent-ils être interprétés? Et pourquoi Size est-elle si différente de WS Total, ne devrait-elle pas être la même?

Jusqu'à présent, j'ai compris que WS Total incluait WS Private et WS Shareable. L'utilisation de WS Total peut donc être une mesure trompeuse. J'ai également lu des questions telles que l' empreinte de mémoire de .Net exe que le jeu de travail de .Net est habituellement plus grand qu'il devrait être. Est-ce que instancier le processus dans un environnement affamé de mémoire, disons qu'une machine virtuelle de 128 Mo réduit la taille de l'ensemble de travail au minimum?

Toute aide ou compréhension serait grandement appréciée.





vb6