Megosztás a következőn keresztül:


A .NET-alkalmazás hangszerelése a Visual Studióban (C#, C++, Visual Basic, F#)

A Visual Studio 2022 17.5-ös verziójának kiadásával használhatja az új dinamikus instrumentation eszközt. Ez az eszköz azt mutatja, hogy pontosan hány alkalommal hívja meg a függvényeket, és gyorsabb, mint a Instrumentation eszköz előző verziója. Ez az eszköz PDB fájlok nélkül támogatja a .NET Core instrumentálást. A Visual Studio 2022 17.6 Preview 2-es verziójától kezdve az eszköz a C/C++ verziót is támogatja.

Az eszköz hasonló a CPU-használati eszközhöz, azonban a tényleges idő alapján működik, nem a processzorhasználat szerint. Ez azt jelenti, hogy a blokkolt idő, például a zárolásokra való várakozással töltött idő megjelenik a rendszerállapot-nyomkövetésben, ellentétben a CPU-használat eszközzel. További információ a Instrumentation eszköz hatékony használatáról: Rendszerállapot áttekintése és Esettanulmány: Teljesítményproblémák elkülönítése.

Az alkalmazás hangszerelése

  1. Válassza Alt+F2 (vagy Hibakeresés > Performance Profiler) lehetőséget a teljesítményprofilozó megnyitásához a Visual Studióban.

  2. Jelölje be a Instrumentation jelölőnégyzetet.

    Kiválasztott instrumentation eszközt ábrázoló képernyőkép.

    Ha a profilozó indítása előtt engedélyezi a Kezdés szüneteltetett gyűjtéssel opciót, a profilkészítő csak akkor kezdi el az adatgyűjtést, amikor a diagnosztikai munkamenet nézetben megnyomja a Rögzítés gombot.

    Jegyzet

    Ha az eszköz nem érhető el a kijelöléshez, törölje minden más eszköz jelölőnégyzetének jelölését, mert egyes eszközöknek egyedül kell futniuk. Az eszközök együttes futtatásáról további információt Több profilkészítő eszköz egyidejű használatacímű témakörben talál.

    Ha az eszköz továbbra sem érhető el, ellenőrizze, hogy a projekt megfelel-e az előző követelményeknek. Győződjön meg arról, hogy a projekt kiadási módban van a legpontosabb adatok rögzítéséhez.

  3. Az eszköz futtatásához válassza a Start gombot.

  4. Válassza ki a programjában az elemeket az instrumentáláshoz.

    Képernyőkép a párbeszédpanelről, amely az elemek kijelölését az eszközre mutatja.

    A Visual Studio 2022 17.11-es verziójától kezdve a profilkészítő megőrzi a következő profilkészítési futtatáshoz kijelölt elemeket.

    A Visual Studio 2022 17.13 preview 1-es verziójától kezdve kiválaszthatja a C++-hoz szükséges elemeket.

  5. Válassza OKlehetőséget.

  6. Az eszköz futtatása után haladjon végig az alkalmazáson belül profilként használni kívánt forgatókönyvön. Ezután válassza az Adatgyűjtés leállítása lehetőséget, vagy zárja be az alkalmazást az adatai megtekintéséhez.

A Rendszerállapot-jelentés elemzése

A profilkészítési adatok megjelennek a Visual Studióban.

.NET-rendszerállapot-adatokat megjelenítő képernyőkép.

Az Instrumentációs adatnézet a leghosszabb ideig futó függvények listáját jeleníti meg, a leghosszabb futó függvény pedig legfelül található a Top Functionsalatt. A forró útvonal szakasz megjeleníti azokat a függvényhívásokat, amelyek a legtöbb időt veszik igénybe. Ezek a listák segítenek a teljesítménybeli szűk keresztmetszeteket tartalmazó függvények megismerésében.

Kattintson egy olyan függvényre, amely érdekli, és részletesebb nézet jelenik meg.

A rendelkezésre álló adatok hasonlóak a processzorhasználati eszközhöz, azzal a kivétellel, hogy ezek a valós idejű óra és a hívásszám alapján készülnek, nem pedig a processzorhasználat alapján.

Elemzési adatok

Ha a Top Insights szakaszban bármilyen megállapítás megjelenik, a megadott hivatkozással további információt kaphat az azonosított problémáról. További információkért lásd a CPU insightsdokumentumot, de vegye figyelembe, hogy az Instrumentation eszköz információi a naptári időre vonatkoznak, nem pedig a CPU kihasználtságára.

Emellett, ha a Copilotot használja, használja a A Copilot kérése gombot a Copilot csevegőablakának megnyitásához, és a Copilot javaslatokat ad a kód vizsgálata és az azonosított problémák alapján.

A műszerezés részletes jelentéseinek elemzése

A műszerezési jelentés elemzéséhez kattintson a Részletek megnyitásaelemre, vagy kattintson a legfelső funkciók egyikére a Funkciók nézet megnyitásához.

A jelentés különböző nézeteket biztosít a diagnosztikai adatokról:

Megtekintés Leírás
Hívó/hívott Egy adott függvényben töltött idő részletes nézete, az azt meghívó függvény(ek) és a meghívott függvény(ek) részletes nézete. A teljesítményadatok összesítve lesznek az adatgyűjtési időszakra vonatkozóan. A hívási útvonal bejárásához kiválaszthatja a hívó és hívott függvényeket.
Hívásfa A függvény hívási útvonalának hierarchikus nézete. A legtöbb időt igénybe vevő hívási útvonalak azonosítására szolgál (forró útvonal).
Modulok Az egyes modulokban töltött idő megtekintése az adatgyűjtési időszakban összesítve. Olyan modulok azonosítására szolgál, amelyek a magas hívásszám és/vagy teljesítményproblémák kombinációja miatt teljesítménybeli szűk keresztmetszetek lehetnek.
Funkciók Az egyes függvényekben eltöltött idő áttekintése, összesítve az adatgyűjtési időszak során. Azon függvények azonosítására használható, amelyek a magas hívásszám és/vagy teljesítményproblémák kombinációja miatt lehetnek teljesítménybeli szűk keresztmetszetek.
Lánggrafikon A függvény hívási útvonalának hierarchikus nézete egy lánggráfos vizualizációban. A legtöbb időt igénybe vevő hívási útvonalak azonosítására szolgál (forró útvonal).

A hívó/hívott nézet kivételével minden más nézetben a diagnosztikai jelentés a legtöbbről a legkevesebbre, Összes [egység, %]szerint van rendezve. Az oszlopfejlécek kiválasztásával módosíthatja a rendezési sorrendet vagy a rendezési oszlopot. Kattintson duplán egy olyan függvényre, amely érdekli, és látni fogja a függvény forrását, valamint kiemelve, hogy hol van az adott függvényben töltött idő. A táblázat olyan adatokat tartalmazó oszlopokat jelenít meg, mint például a függvényben töltött idő, beleértve az úgynevezett függvényeket (Összeg) és egy második oszlopot, amely egy függvényben töltött időt jeleníti meg, az úgynevezett függvények (Self) kivételével.

Ezek az adatok segítenek felmérni, hogy maga a függvény teljesítménybeli szűk keresztmetszet-e. Határozza meg, hogy a metódus mennyi adatot jelenít meg annak megállapításához, hogy a külső kód- vagy futtatókörnyezeti kódtárak miatt a végpontok lassúak vagy erőforrás-használattal járnak-e.

További információért a Flame Graph használatával történő forró útvonalak azonosításáról lásd: Forró útvonalak azonosítása a Flame Graph.

Műszeres hívásfa

A hívásfa megtekintéséhez válassza ki a szülőcsomópontot a jelentésben. Alapértelmezés szerint a Instrumentation lap megnyílik a Hívó/Híváskereső nézethez. Az Aktuális nézet legördülő menüből válassza a Hívásfalehetőséget. A hívásfa nézet segít a teljesítmény szűk keresztmetszeteinek gyors azonosításában.

A A gyakori elérésű útvonal kibontása és Gyakori elérésű útvonal megjelenítése gombokra kattintva megtekintheti azokat a függvényhívásokat, amelyek a legtöbb falióraidőt használják a hívásfa nézetben.

Hívásfa struktúráját bemutató képernyőkép.

Az oszlopértékekkel kapcsolatos további információk:

  • Total azt jelzi, hogy mennyi időt töltöttek a függvényben és az általa hívott függvényekben. Az alacsony Teljes értékek azokra a függvényekre mutatnak, amelyek a legtöbb óraidőt fogyasztják.

  • Önmagába azt jelzi, hogy mennyi időt töltött a függvény belsejében, kivéve az általa meghívott függvényekben töltött időt. A magas saját értékek a függvényen belüli teljesítmény szűk keresztmetszetét jelezhetik.

  • Hívásszám azt jelzi, hogy egy függvény hányszor van meghívva.

  • modul A függvényt tartalmazó modul neve.

Aszinkron hívások a Instrumentation hívásfában (.NET)

A Visual Studio 2022 17.13 preview 2-es verziójától kezdve a vizualizációs hívásfa nézetei a .NET aszinkron hívásokat ágyaznak az aszinkron hívásokat tároló függvények alá, így egyszerűbb nyomon követni a végrehajtási folyamatot egyetlen, egységes veremkövetésen belül. Ez segíthet a teljesítmény szűk keresztmetszeteinek gyors azonosításában.

Az egyesített verem nyomkövetése megjelenik a Hívásfa nézetben, valamint az Összefoglaló oldal gyakori elérésű útvonal szakaszában. Az aszinkron csomópontok az [Async Call] leíróval jelennek meg.

Aszinkron hívások hívásfastruktúráját bemutató képernyőkép.

Az összefűzött aszinkron hívásverem megjelenítését úgy kapcsolhatja be, hogy a profilkészítő Összegzés nézetében a Szűrő lehetőség közül kiválasztja Stitch Async Stacks lehetőséget. A beállítás alapértelmezés szerint engedélyezve van.

Képernyőkép a Stick Async Stacks beállításról.