Bagikan melalui


Mengukur performa aplikasi dari baris perintah

Anda dapat mengumpulkan informasi performa tentang suatu aplikasi dengan menggunakan alat baris perintah. Anda dapat mengumpulkan data performa untuk Penggunaan CPU, alokasi memori .NET, instrumentasi, dan kueri database.

Dalam contoh yang dijelaskan dalam artikel ini, Anda akan mengumpulkan informasi performa untuk Microsoft Notepad, tetapi metode yang sama dapat digunakan untuk memprofilkan setiap proses.

Catatan

Untuk menghasilkan komponen C/C++ berinstrumen dari baris perintah, lihat Instrumen komponen mandiri asli sebelum mengikuti langkah-langkah dalam artikel ini. Untuk data penggunaan CPU, Anda dapat menggunakan prosedur yang dijelaskan dalam artikel ini.

Prasyarat

  • Visual Studio 2019 atau versi yang lebih baru

  • Penguasaan alat baris perintah

  • Untuk mengumpulkan informasi performa pada komputer jarak jauh tanpa menginstal Visual Studio, instal Alat Jarak Jauh untuk Visual Studio pada komputer jarak jauh. Versi alat harus cocok dengan versi Visual Studio Anda.

Mengumpulkan data performa

Pembuatan profil menggunakan alat CLI Diagnostik Visual Studio bekerja dengan melampirkan alat pembuatan profil, beserta salah satu agen pengumpul, ke sebuah proses. Saat Anda melampirkan alat pembuatan profil, Anda memulai sesi diagnostik yang mengambil dan menyimpan data pembuatan profil sampai alat dihentikan, di mana data diekspor menjadi file .diagsession. Kemudian Anda dapat membuka file ini di Visual Studio untuk menganalisis hasil.

  1. Mulai Notepad, lalu buka Task Manager untuk mendapatkan ID prosesnya (PID). Di Task Manager, temukan PID di tab Detail.

  2. Buka perintah dan ubah ke direktori dengan agen pengumpulan yang dapat dieksekusi, biasanya di sini (untuk Visual Studio Enterprise).

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

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

    Untuk alat jarak jauh, agen koleksi yang dapat dieksekusi berada di lokasi ini:

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

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

    Catatan

    Saat menggunakan baris perintah dalam skenario jarak jauh, Anda perlu menjalankan instruksi baris perintah pada komputer jarak jauh. Jika Anda ingin melampirkan ke komputer jarak jauh dari Visual Studio, gunakan Profiler Performa di Visual Studio sebagai gantinya.

  3. Mulai VSDiagnostics.exe dengan mengetik perintah berikut.

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

    Argumen yang harus disertakan adalah:

    • <id> Mengidentifikasi sesi pengumpulan. ID harus berupa angka antara 1-255.
    • <pid>, PID dari proses yang ingin Anda profilkan, dalam hal ini PID yang Anda temukan di langkah 1.
    • <configFile>, file konfigurasi untuk agen pengumpulan yang ingin Anda luncurkan. Untuk informasi selengkapnya, lihat File konfigurasi untuk agen.

    Misalnya, Anda dapat menggunakan perintah berikut untuk agen CPUUsageBase dengan mengganti pid seperti yang dijelaskan sebelumnya.

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

    Atau, Anda dapat menggunakan launch perintah untuk memulai executable. Dalam skenario ini, Anda tidak perlu mendapatkan ID proses dan melampirkannya. Semua alat mendukung launch perintah, meskipun beberapa tidak mendukung attach, seperti alat Instrumentasi dan Alokasi .NET. Misalnya, gunakan yang berikut ini untuk memulai data instrumentasi yang dapat dieksekusi dan dikumpulkan:

    VSDiagnostics start <id> /launch:<ExeToProfile> /loadConfig:AgentConfigs\PerfInstrumentation.json
    
  4. Mengubah ukuran Notepad, atau ketik sesuatu di dalamnya untuk memastikan beberapa informasi pembuatan profil yang menarik dikumpulkan.

  5. Hentikan sesi pengumpulan dan kirim output ke file dengan mengetik perintah berikut.

    VSDiagnostics.exe stop <id> /output:<path to file>
    
  6. Temukan output file .diagsession dari perintah sebelumnya, dan buka di Visual Studio (File>Buka) untuk memeriksa informasi yang dikumpulkan.

    Untuk menganalisis hasilnya, lihat dokumentasi untuk alat performa yang sesuai. Misalnya, ini mungkin penggunaan CPU, alat Alokasi Objek .NET, Instrumentasi, atau alat Database.

File konfigurasi agen

Agen Pengumpulan adalah komponen yang dapat dipertukarkan yang mengumpulkan berbagai jenis data tergantung pada hal yang Anda coba ukur.

Demi kenyamanan, sebaiknya Anda menyimpan informasi tersebut dalam file konfigurasi agen. File konfigurasi adalah file .json yang berisi minimal nama .dll dan COM CLSID-nya. Secara default, Anda dapat menemukan contoh file konfigurasi di folder berikut:

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

Konfigurasi CpuUsage (Dasar/Tinggi/Rendah) sesuai dengan data yang dikumpulkan untuk alat pembuatan profil Penggunaan CPU. Konfigurasi DotNetObjectAlloc (Dasar/Rendah) sesuai dengan data yang dikumpulkan untuk alat Alokasi Objek .NET.

Konfigurasi Dasar/Rendah/Tinggi mengacu pada laju pengambilan sampel. Misalnya, Rendah adalah 100 sampel/detik dan Tinggi adalah 4000 sampel/detik.

Agar alat VSDiagnostics.exe berfungsi dengan agen pengumpulan, alat ini memerlukan DLL dan COM CLSID untuk agen yang sesuai. Agen mungkin juga memiliki opsi konfigurasi tambahan, yang akan menjadi opsi apa pun yang ditentukan dalam file konfigurasi, diformat sebagai JSON yang dipisahkan dengan benar.

Izin

Untuk membuat profil aplikasi yang memerlukan izin yang ditingkatkan, Anda harus melakukannya dari perintah yang ditingkatkan.