Aracılığıyla paylaş


Komut satırından uygulama performansını ölçme

Komut satırı araçlarını kullanarak bir uygulama hakkında performans bilgileri toplayabilirsiniz. CPU Kullanımı, .NET bellek ayırma, izleme ve veritabanı sorguları için performans verileri toplayabilirsiniz.

Bu makalede açıklanan örnekte, Microsoft Not Defteri için performans bilgilerini toplarsınız, ancak herhangi bir işlemin profilini almak için aynı yöntem kullanılabilir.

Not

Komut satırından bir izlemeli C/C++ bileşeni oluşturmak için, bu makaledeki adımları izlemeden önce Yerel tek başına bileşen izleme bölümüne bakın. CPU kullanım verileri için bu makalede açıklanan yordamları kullanabilirsiniz.

Önkoşullar

  • Visual Studio 2019 veya sonraki sürümleri

  • Komut satırı araçları hakkında bilgi

  • Visual Studio yüklü olmayan bir uzak makinede performans bilgilerini toplamak için, uzak makineye Visual Studio için Uzak Araçlar yükleyin. Araçların sürümü, Visual Studio sürümünüzle eşleşmelidir.

Koleksiyon aracılarının çoğu .NET Core, .NET 5+, .NET Framework ve C++ sürümlerini destekler. Ancak destek, ilgili performans aracı tarafından sağlanan destekle sınırlıdır. Örneğin, Veritabanı koleksiyonu aracısı .NET Core ve .NET 5+ ile sınırlıdır.

Performans verilerini toplama

Visual Studio Diagnostics CLI araçlarını kullanarak profil oluşturma, profil oluşturma aracını ve toplayıcı ajanlardan birini bir işleme ekleyerek çalışır. Profil oluşturma aracını eklediğinizde, araç durdurulana kadar profil oluşturma verilerini yakalayan ve depolayan bir tanılama oturumu başlatırsınız ve bu noktada veriler bir .diagsession dosyasına aktarılır. Ardından, sonuçları analiz etmek için bu dosyayı Visual Studio'da açabilirsiniz.

  1. Not Defteri'ni başlatın ve işlem kimliğini (PID) almak için Görev Yöneticisi'ni açın. Görev Yöneticisi'nde, Ayrıntılar sekmesinde PID'yi bulun.

  2. Komut istemini açın ve Visual Studio Enterprise için koleksiyon aracısı yürütülebilir dosyasının bulunduğu dizine gidin; bu genellikle buradadır.

    <Visual Studio installation folder>\18\Enterprise\Team Tools\DiagnosticsHub\Collector\

    <Visual Studio installation folder>\2022\Enterprise\Team Tools\DiagnosticsHub\Collector\

    Uzak araçlar için koleksiyon aracısı yürütülebilir dosyası şu konumdadır:

    Program Files\Microsoft Visual Studio 17.0\Team Tools\DiagnosticsHub\Collector\

    Not

    Uzak senaryolarda komut satırını kullanırken, uzak makinede komut satırı yönergelerini çalıştırmanız gerekir. Uzak makineye Visual Studio'dan eklemek istiyorsanız, bunun yerine Visual Studio'daki Performans Profili Oluşturucu'yu kullanın.

  3. Aşağıdaki komutu yazarak VSDiagnostics.exe başlatın.

    VSDiagnostics.exe start <id> /attach:<pid> /loadConfig:<configFile>
    

    Eklenmesi gereken bağımsız değişkenler şunlardır:

    • < kimliği> Koleksiyon oturumunu tanımlar. Kimlik 1-255 arasında bir sayı olmalıdır.
    • < pid>, profiline almak istediğiniz işlemin PID'sini (bu örnekte 1. adımda bulduğunuz PID).
    • Başlatmak istediğiniz koleksiyon aracısı için yapılandırma dosyası <, configFile>. Daha fazla bilgi için bkz. aracılar için yapılandırma dosyaları.

    Örneğin, daha önce açıklandığı gibi pid değiştirerek CPUUsageBase aracısı için aşağıdaki komutu kullanabilirsiniz.

    VSDiagnostics.exe start 1 /attach:<pid> /loadConfig:AgentConfigs\CPUUsageLow.json
    

    Alternatif olarak, yürütülebilir dosyayı başlatmak için launch komutunu kullanabilirsiniz. Bu senaryoda, işlem kimliğini elde etmeniz ve buna bağlanmanız gerekmez. Bazı araçlar launch’i desteklemese de, tüm araçlar attach komutunu destekler; bu araçlar arasında İzleme ve .NET Ayırma aracı bulunmaktadır. Örneğin, yürütülebilir dosyayı başlatmak ve izleme verilerini toplamak için aşağıdakileri kullanın:

    VSDiagnostics start <id> /launch:<ExeToProfile> /loadConfig:AgentConfigs\PerfInstrumentation.json
    
  4. Bazı ilginç profil oluşturma bilgilerinin toplandığından emin olmak için Not Defteri'ne yeniden boyutlandırın veya bir şey yazın.

  5. Aşağıdaki komutu yazarak koleksiyon oturumunu durdurun ve çıktıyı bir dosyaya gönderin.

    VSDiagnostics.exe stop <id> /output:<path to file>
    
  6. Önceki komuttan .diagsession dosya çıkışını bulun ve toplanan bilgileri incelemek için Visual Studio'da (Dosya>Aç ) açın.

    Sonuçları analiz etmek için ilgili performans aracının belgelerine bakın. Örneğin, bu CPU Kullanımı, .NET Nesne Ayırma aracı, İzlemeveya Veritabanı aracı olabilir.

Aracı yapılandırma dosyaları

Koleksiyon Aracıları, ölçmeye çalıştığınız verilere bağlı olarak farklı veri türlerini toplayan değiştirilebilir bileşenlerdir.

Kolaylık sağlamak için bu bilgileri bir aracı yapılandırma dosyasında depolamanızı öneririz. Yapılandırma dosyası, en azından .dll adını ve COM CLSID'sini içeren bir .json dosyasıdır. Varsayılan olarak, örnek yapılandırma dosyalarını aşağıdaki klasörde bulabilirsiniz:

Program Files\Microsoft Visual Studio\<version>\<sku>\Team Tools\DiagnosticsHub\Collector\AgentConfigs

CpuUsage yapılandırmaları (Temel/Yüksek/Düşük), CPU Kullanımı profil oluşturma aracı için toplanan verilere karşılık gelir. DotNetObjectAlloc yapılandırmaları (Temel/Düşük), .NET Nesne Ayırma aracı için toplanan verilere karşılık gelir.

Temel/Düşük/Yüksek yapılandırmalar örnekleme oranına işaret eder. Örneğin, Düşük 100 örnek/saniye, Yüksek ise 4000 örnek/saniyedir.

VSDiagnostics.exe aracının bir koleksiyon aracıyla çalışabilmesi için hem uygun aracı tanımlayan DLL dosyası hem de COM CLSID'nin olması gerekir. Aracın ek yapılandırma seçenekleri de olabilir; bunlar, yapılandırma dosyasında belirtilen ve kaçış karakterleri uygun şekilde eklenmiş JSON olarak biçimlendirilmiş seçenekler olabilir.

İzinler

Yükseltilmiş izinler gerektiren bir uygulamanın profilini almak için bunu yükseltilmiş bir komut isteminden yapmanız gerekir.