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 bir tek başına bileşeni izleme konusuna 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 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.
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.
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.
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:
- <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 desteklerlaunch
, ancak bazıları İzleme ve .NET Ayırma aracı gibi öğesini desteklemezattach
. Ö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
Bazı ilginç profil oluşturma bilgilerinin toplandığından emin olmak için Not Defteri'ne yeniden boyutlandırın veya bir şey yazın.
Aşağıdaki komutu yazarak koleksiyon oturumunu durdurun ve çıktıyı bir dosyaya gönderin.
VSDiagnostics.exe stop <id> /output:<path to file>
Ö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 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 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.