L'essentiel de Visual Studio 2017

Profiler l'occupation mémoire

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Apprenez à effectuer une séance de profilage pour analyser, en temps réel, l'occupation mémoire de votre application.
05:46

Transcription

Il y a, donc d'autres méthodes de profilage dans le Profileur de performances, on a vu l'Assistant, mais on a également, Utilisation de la mémoire, Utilisation de l'UC, Chronologie de l'application. Je vais déjà vous montrer Utilisation de la mémoire. Vous voyez qu'il y a une petite roue dentée qui nous permet de faire un choix de paramètres, un seul, le Type type de profileur. Est-ce qu'on va gérer et analyser la mémoire Mangée ou Native ? Ça veut dire, ici, j'ai une application complètement .net, donc tout le code est géré, on traduit parfois, par Managé, ici, dans la traduction en français de Visual Studio, donc ça veut dire que c'est totalement géré par le Framework.net. Par contre, si j'avais des appels de dll ou des parties de codes qui sont natives, par exemple du C++ ou des appels d'objets COM ou ActiveX, je pourrais faire Mixte et si je n'ai que nu natif, je peux faire Natif. Donc là, je reste en Managé uniquement puisque je n'ai que du code .net. Je fais Utilisation de la mémoire, je démarre et en temps réel, pendant l'exécution de mon application, vous voyez, j'ai un graphe d'occupation Mémoire qui me donne, voilà, l'activité actuelle pendant la session de diagnostics. Donc je vais faire quelque chose comme Connexion par exemple, voyez que ç'a occupé un tout petit de mémoire, j'ai dû charger un objet, ça redescend parce que ç'a été libéré. Et vous voyez d'ailleurs que vous avez des petits signes ici, régulièrement, qui correspondent, si je viens ici, à la légende, au garbage collecteur ou GC, c'est-à-dire le ramasse-miette de .net, qui va de temps en temps, récupérer la mémoire, c'est-à-dire des objets qui ne sont plus référencés dans le code. Si je fais quelque chose qui prend un petit peu de mémoire, par exemple, mon Explorateur de cache qui affiche une Grid, etc., vous voyez que, voilà, ça commence à prendre un petit peu de place. Et puis, je vais pouvoir analyser après coup, les détails, mais, seulement, si ici, je prends un instantané. Donc, au moment où je vais cliquer sur Prendre un instantané, comme son nom l'indique, il va y avoir un instantané d'occupation de la mémoire par mon application qui a été faite, donc, à cette heure et je serai obligé d'arrêter ma séquence, mon exécution pour pouvoir analyser ceci. Donc, pour l'instant, je continue. Je voulais juste vous montrer aussi que pour voir ce que ça donne à un moment donné, si vous êtes en train d'utiliser l'application et vous avez fini comme ceci, par exemple, et vous vous dites : « Alors, je vais forcer ici, le garbage collecteur pour voir si ça libère de la mémoire », vous pouvez le faire manuellement. Et vous voyez que le garbage collecteur s'est déclenché, ç'a libéré un petit peu et il y a quelques références, ici, qui ont été libérées. Et maintenant, ce que je vais faire, c'est que je vais arrêter mon application, les informations de diagnostics, voilà, vont être compilées dans un rapport, vous voyez il y a plutôt une session qui est ici et qui prend l'extension .diagsession, donc vous pouvez la sauvegarder de façon à la réutiliser ou la réanalyser plutôt plus tard, et la comparer avec d'autres sessions de diagnostics quand vous aurez fait des modifications dans votre application. Maintenant, j'ai, donc mon historique d'occupation mémoire ici, je ne peux pas en faire grand chose, je vois à un moment, combien il y avait d'occupation mémoire, mais par contre, je peux maintenant, me servir de mon instantané pour analyser soit dans une vision en Mo, soit dans une vision organisée autour des objets, je vais prendre Mo déjà. Quelles étaient les parties de l'application ? Combien il y avait de références, combien il y avait d'objets sur MainWindow, par exemple, et quelle est la taille en octets ? Avec une taille inclusive ici, qui correspond à total cumulé par rapport à la hiérarchie des objet parce qu'ici, j'ai une App qui comporte une MainWindow, etc. Si je regarde dans MainWindow, je vais me retrouver sur le code comme d'habitude et si je descends ici, je vais voir quelle est l'instance et puis, les objets référencés, dans cette instance de MainWindow, quels étaient les différents objets, qu'est ce qui prenait un petit peu de mémoire, finalement, avec une taille inclusive. Donc, je vois que dans mon MainWindow, j'ai une DataGrid, ici, et je peux revenir ici, sur DataGrid, voir les différentes instances de la DataGrid, donc c'est une analyse un petit peu fouillée de qu'est-ce qui prend le plus de mémoire. Si vous avez, comme c'est mon cas ici, une application avec une interface graphique, cette session de diagnostics mémoire va vous indiquez quels sont les éléments qui prennent le plus de mémoire et ça vous permet d'affiner un peu, votre optimisation de l'application. Vous allez avoir la même vision sous forme d'objets, combien on a de nombre d’objets et donc, là, on va avoir en premier, des éléments plus élémentaires, si vous voulez de WPF ou de .net, par exemple, des éléments de collection, voyez, des DictionaryNodes, donc je sais qu'en tout, j'en ai fait 1264 et que ç'a pris telle taille en octets. Ça peut être intéressent lorsque vous manipulez des collections ou des interfaces graphiques complexes, de savoir combien vous avez instancié finalement, d'instance de ce ce type d'éléments.

L'essentiel de Visual Studio 2017

Découvrez les éléments fondamentaux de l'interface de Visual Studio. Exploitez la richesse des fonctionnalités de cet environnement de développement intégré de Microsoft.

5h16 (65 vidéos)
Aucun commentaire n´est disponible actuellement
Spécial abonnés
Date de parution :10 août 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !