[C#] Pratique de la programmation parallèle : tâches de débogage à l'aide de Visual Studio

        La programmation parallèle peut améliorer les performances de l'application, mais elle sera plus difficile à déboguer, ce que nous avons déjà ressenti intuitivement dans les chapitres précédents. Pour les programmes, garantir l’exactitude du programme est tout aussi important que garantir ses performances.

        Ce chapitre présentera les outils de débogage qui peuvent être utilisés dans Visual Studio (y compris la fenêtre Thread, la fenêtre Tâches et Concurrency Visulizer) pour déboguer les threads. En fait, à mon avis, utiliser VS pour le débogage n'est pas idéal. Il existe une meilleure solution pour notre programme Unity. Mais il n’est pas compliqué d’avoir trop de compétences, et c’est bien d’apprendre à les connaître.

          Apprenez l'ingénierie avec ce tutoriel : Magician Dix/HandsOnParallelProgramming · GitCode


1. Utilisez Visual Sutdio 2019 2022 pour le débogage

        Le livre utilise VS2019, mais de quelle année sommes-nous et utilisez-vous toujours 2019 ? Allons directement en 2022 !

        La fenêtre de débogage du thread s'ouvre comme suit :

         Débogage->Fenêtre->Threads.

        Après cela, nous pouvons déboguer en définissant des points d'arrêt. La fenêtre du fil ressemble à ceci :

         PS : La façon de définir des points d’arrêt pour Unity dans VS2022 est la suivante : Déboguer -> Attacher le débogueur Unity.

2. Comment déboguer les threads

        Lorsque vous utilisez plusieurs threads, il devient important de savoir quel thread s'exécute à un moment précis. Cela nous permet de résoudre les problèmes entre threads et les conditions de concurrence.

         Le fil de discussion est ouvert comme indiqué sur la figure et des points d'arrêt peuvent également être affichés. Le petit drapeau à l'extrême gauche indique le fil marqué. Vous pouvez sélectionner la petite marque de drapeau sur la gauche, puis choisir d'afficher uniquement les fils marqués. C'est très pratique s'il y a beaucoup de discussions.

         Il y a aussi une petite fenêtre, dans Debug->Window->Parallel Stack Window, vous pouvez vérifier la pile parallèle et autres.

        Mais je ne pense pas que ce soit très utile en pratique, car les deux fonctions dont j'ai le plus besoin sont : Comment vérifier les erreurs multi-threading ? Comment vérifier l’utilisation multi-thread ? Aucune de ces fenêtres ne peut être affichée et seuls les points d'arrêt prendront effet.

3. Visualiseur de concurrence

        Le livre mentionne un outil Concurrency Visualizer. On peut le rechercher directement dans l’extension et l’installer sur VS 2022 :

         Il n'y a rien à dire sur l'installation. Une fois l'installation terminée, nous l'utiliserons dans Analysis->Concurrency Visualization Tool.

         Sélectionnez Joindre au processus et recherchez notre programme. Le système collectera alors automatiquement les données, puis nous exécuterons Unity. Lorsque nous n'avons pas besoin de tester, arrêtez la collecte et obtenez un panneau visuel montrant les performances :

         Nous pouvons voir divers paramètres, la consommation de threads, etc. de l'intérieur.

        Pour une introduction connexe, veuillez consulter ce document :

Optimisez les performances à l'aide de ConcurrencyVisualizer dans VisualStudio2010 - Bibliothèque Baidu https://wenku.baidu.com/view/840f5972ab956bec0975f46527d3240c8547a176.html?_wkts_=1690171463334&bdQuery=Concurrency+Visualizer

        Mon évaluation : Inutile, pas aussi bon que le profil Unity.


4. Sections de ce chapitre

        Ce chapitre présente brièvement plusieurs outils et fenêtres de débogage, mais je pense qu'aucun d'entre eux n'est d'une grande utilité. Si vous souhaitez simplement voir la pile, les points d'arrêt ordinaires peuvent également être débogués. Si vous regardez les performances, le profil Unity est évidemment un meilleur choix. Quant à la façon d'utiliser Unity Profile pour vérifier les performances multi-threading, nous l'introduirons plus tard.        

        Dans l’ensemble, c’est très insipide.

        Apprenez l'ingénierie avec ce tutoriel : Magician Dix/HandsOnParallelProgramming · GitCode

Je suppose que tu aimes

Origine blog.csdn.net/cyf649669121/article/details/131893440
conseillé
Classement