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 C/C++ izlemesi için bkz . Yerel tek başına bileşeni izleme. 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 Visual Studio için Uzak Araçlar uzak makineye yükleyin. Araçların sürümü, Visual Studio sürümünüzle eşleşmelidir.

Performans verilerini toplama

Visual Studio Tanılama CLI araçlarını kullanarak profil oluşturma, bir işleme toplayıcı aracılarından biriyle birlikte profil oluşturma aracını 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 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. Bir komut istemi açın ve genellikle burada (Visual Studio Enterprise için) koleksiyon aracısı yürütülebilir dosyasıyla dizine geçin.

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

    <Visual Studio installation folder>\2019\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\

    Program Files\Microsoft Visual Studio 16.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 dosyasını başlatın.

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

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

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

    Örneğin, daha önce açıklandığı gibi pid değerini 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 komutunu kullanabilirsiniz launch . Bu senaryoda, işlem kimliğini almanız ve buna eklemeniz gerekmez. Tüm araçlar komutunu destekler launch , ancak bazıları İzleme ve .NET Ayırma aracı gibi öğesini desteklemez attach. Ö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. Not Defteri yeniden boyutlandırarak veya bazı ilginç profil oluşturma bilgilerinin toplandığından emin olmak için bir şeyler 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 dosyası çı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ı, İzleme veya 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'ninadı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 başvurur. Örneğin, Düşük 100 örnek/saniye, Yüksek ise 4000 örnek/saniyedir.

VSDiagnostics.exe aracının bir koleksiyon aracısı ile çalışması için uygun aracı için hem DLL hem de COM CLSID gerekir. Aracının ek yapılandırma seçenekleri de olabilir; bu, yapılandırma dosyasında belirtilen ve doğru şekilde kaçış 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.