PerfView adalah alat analisis kinerja gratis yang membantu mengisolasi CPU dan masalah kinerja terkait memori. Ini adalah alat Windows, tetapi juga memiliki beberapa dukungan untuk menganalisis data yang dikumpulkan pada mesin Linux. Ini berfungsi untuk berbagai skenario, tetapi memiliki sejumlah fitur khusus untuk menyelidiki masalah kinerja dalam kode yang ditulis untuk .NET Runtime.
Jika Anda tidak terbiasa dengan perfview, ada tutorial video perfview. Juga, blog Vance Morrison memberikan gambaran umum dan memulai informasi.
Silakan lihat halaman unduhan perfview untuk tautan dan instruksi untuk mengunduh versi perfview saat ini.
Perfview membutuhkan .NET Framework 4.7.2 atau lebih baru, yang tersedia secara luas untuk semua versi Windows yang didukung.
Perfview dibangun di atas perpustakaan yang disebut microsoft.diagnostics.tracing.traceEvent, yang tahu cara mengumpulkan dan menguraikan pelacakan acara untuk windows (ETW) dan data Evenpipe (.NET Core Trace). Jadi jika ada informasi yang dikumpulkan dan diproses oleh Perfview yang ingin Anda manipulasi secara terprogram, Anda mungkin akan tertarik dengan dokumentasi perpustakaan TraceEvent
Lihat dokumen skenario untuk menentukan pilihan mana yang terbaik untuk apa yang Anda coba lakukan.
Panduan Pengguna PerfV adalah bagian dari aplikasi itu sendiri. Selain itu, Anda dapat mengklik tautan Panduan Pengguna untuk melihat file sumber HTML Github yang diberikan di browser Anda. Anda juga dapat mengunduh perfview menggunakan instruksi di atas dan memilih item menu Panduan Bantuan -> Pengguna.
Ketika Anda memiliki pertanyaan tentang perfview, reaksi pertama Anda adalah mencari panduan pengguna (bantuan -> panduan pengguna) dan lihat apakah Anda sudah dapat menemukan jawabannya. Jika itu tidak berhasil, Anda dapat mengajukan pertanyaan dengan membuat masalah perfview baru. Nyatakan pertanyaan Anda secara ringkas dalam judul, dan jika perlu berikan detail dalam tubuh masalah ini, ada tag masalah yang disebut 'pertanyaan' yang harus Anda gunakan juga yang menandai masalah Anda sebagai pertanyaan daripada beberapa laporan bug. Jika pertanyaannya khusus untuk jejak tertentu (file .etl.zip), Anda dapat menyeret file itu ke masalah dan itu akan diunduh. Ini memungkinkan mereka yang mengawasi masalah untuk mereproduksi lingkungan Anda dan memberikan jawaban yang lebih rinci dan bermanfaat.
Perhatikan bahwa begitu Anda mendapatkan pertanyaan Anda dijawab, jika masalahnya mungkin umum, Anda harus sangat mempertimbangkan untuk memperbarui dokumentasi untuk memasukkan informasi. Dokumentasi ini cukup banyak hanya satu file https://github.com/microsoft/perfview/blob/main/src/perfview/supportfiles/usersguide.htm. Anda perlu mengkloning repositori dan membuat permintaan tarik (lihat OpenSourcegitWorkFlow untuk instruksi untuk menyiapkan dan membuat permintaan tarik.
Pelaporan bug bekerja hampir sama seperti mengajukan pertanyaan. Sangat mungkin bahwa Anda akan ingin memasukkan file *.etl.zip yang diperlukan untuk mereproduksi masalah serta langkah -langkah apa pun dan perilaku yang tidak diinginkan.
Jika Anda hanya ingin melakukan investigasi kinerja, Anda tidak perlu membangun perfview sendiri. Cukup gunakan satu dari halaman unduhan perfview. Namun jika Anda ingin fitur baru atau hanya ingin berkontribusi pada perfview untuk membuatnya lebih baik (lihat masalah untuk hal -hal yang diinginkan orang), Anda dapat melakukannya dengan mengikuti sisa instruksi ini.
Satu -satunya alat yang Anda butuhkan untuk membangun perfview adalah Visual Studio 2022. Visual Studio 2022 Community Edition dapat diunduh secara gratis dan memiliki semua yang Anda butuhkan untuk mengambil pemandangan dari GitHub, membangun, dan mengujinya. Kami berharap Anda mengunduh Visual Studio 2022 Community Edition jika Anda belum memiliki Visual Studio 2022.
Dalam pemasangan Visual Studio Anda, Anda perlu memastikan Anda memiliki beban kerja dan komponen berikut yang diinstal:
File .vsconfig termasuk dalam root repositori yang dapat digunakan untuk menginstal komponen yang diperlukan. Saat membuka solusi di Visual Studio, itu akan meminta Anda untuk menginstal komponen apa pun yang menurutnya hilang dari instalasi Anda. Atau, Anda dapat mengimpor .vsconfig di Visual Studio Installer.
Jika Anda mendapatkan kesalahan yang menyusun proyek ETWCLRCompiler, kemungkinan karena Anda tidak menginstal Windows 10 SDK, atau Anda tidak menginstal libs yang dimitigasi oleh spektrum. Silakan merujuk ke bagian pemecahan masalah untuk informasi lebih lanjut.
Langkah pertama dalam memulai dengan kode sumber perfview adalah mengkloning repositori GitHub perfview. Jika Anda sudah terbiasa dengan bagaimana Git, GitHub, dan Visual Studio 2022 Git Dukungan berfungsi, maka Anda dapat melewatkan bagian ini. Namun, jika tidak, pengaturan repositori GitHub lokal dengan dokumen Visual Studio 2022 akan menuntun Anda melalui dasar -dasar melakukan ini. Yang diasumsikannya hanyalah bahwa Anda telah menginstal Visual Studio 2022.
Perfview dikembangkan di Visual Studio 2022 menggunakan fitur melalui C# 7.3.
File solusinya adalah perfview.sln. Membuka file ini di Visual Studio (atau mengklik dua kali di Windows Explorer) dan memilih solusi build -> build, akan membangunnya. Anda juga dapat membangun versi non-debug dari baris perintah menggunakan msBuild atau file build.cmd di dasar repositori. Build mengikuti konvensi Visual Studio standar, dan file perfView.exe yang dihasilkan berakhir di SRC/perfView/bin/ buildType /perfview.exe. Anda hanya perlu menggunakan exe yang satu ini untuk menggunakannya.
Solusinya terdiri dari beberapa proyek, mewakili DLLS DLL dan EXE utama. Untuk menjalankan perfview di debugger , Anda perlu memastikan bahwa 'proyek startup' diatur ke proyek 'perfview' sehingga meluncurkan EXE utama. Jika proyek perfview di Solution Explorer (di sebelah kanan) tidak berani, klik kanan pada proyek perfview dan pilih 'Set as Startup Project'. Setelah melakukan ini 'Mulai Debugging' (F5) harus bekerja.
Anda akan ingin menggunakan 'rilis' daripada versi 'debug' perfview. Dengan demikian, pertama -tama atur konfigurasi build Anda ke 'Rilis' (jendela teks di toolbar atas, atau klik kanan pada file .sln -> Configuration Manager -> Konfigurasi Solusi Aktif). Build berikutnya (Build-> Build Solution (Ctrl-Shift-B)). Hasilnya adalah bahwa di direktori SRC PerfView bin net462 Release akan ada antara lain A PerfView.exe. File yang satu ini adalah semua yang perlu Anda gunakan. Cukup salin ke tempat Anda ingin menggunakan aplikasi.
Salah satu hal yang tidak biasa tentang perfview adalah bahwa ia memasukkan DLL dukungannya ke dalam EXE itu sendiri, dan ini dibongkar pada peluncuran pertama. Ini berarti bahwa ada dependensi rumit dalam bangunan yang tidak khas. Anda akan melihat kesalahan bahwa DLL tertentu tidak dapat ditemukan jika ada masalah pembangunan sebelumnya dalam pembangunan. Biasanya Anda dapat memperbaikinya hanya dengan melakukan build normal (tidak bersih), karena file yang hilang akan hadir dari kompilasi terakhir. Jika ini tidak memperbaiki keadaan, lihat apakah DLL dicari benar -benar ada (jika itu terjadi, maka pembangunan kembali harus memperbaikinya). Masuk akal untuk turun proyek satu per satu dan membangunnya secara individual untuk melihat mana yang gagal 'pertama'.
Hal lain yang tidak biasa tentang perfview adalah termasuk mekanisme ekstensi lengkap dengan sampel. Mekanisme ekstensi ini adalah proyek 'global' (disebut karena itu adalah ekstensi global yang perintahnya tidak memiliki 'ruang lingkup' eksplisit) dan perlu merujuk pada perfview untuk menyelesaikan beberapa referensi. Dengan demikian Anda akan mendapatkan banyak masalah 'tidak ditemukan' dalam proyek 'global'. Ini dapat diabaikan sampai Anda mendapatkan setiap bagian lain dari bangunan.
Salah satu invarian repo adalah bahwa jika Anda menjalankan Visual Studio 2022 dan Anda cukup menyinkronkan dan membangun file perfview.sln, itu seharusnya 'hanya berfungsi'. Jika itu tidak terjadi, dan saran di atas tidak membantu, maka kita perlu memperbaiki repo atau memperbarui saran di atas. Dengan demikian masuk akal untuk membuka masalah github. Jika Anda melakukan ini, tujuannya adalah untuk memperbaiki masalah, yang berarti Anda harus memasukkan informasi yang cukup ke dalam masalah untuk melakukannya. Ini termasuk apa yang Anda coba, dan apa pesan kesalahannya.
Anda juga dapat membangun perfview dari baris perintah (tetapi Anda masih memerlukan Visual Studio 2022 yang diinstal). Ini adalah proses dua langkah. Pertama, Anda harus memulihkan semua paket Nuget yang dibutuhkan, maka Anda membuat sendiri. Untuk melakukan ini:
Jika Anda mendapatkan kesalahan "MSB8036: Versi Windows SDK 10.0.17763.0 tidak ditemukan", atau Anda mendapatkan 'assert.h' yang tidak ditemukan kesalahan, atau terus terang kesalahan apa pun yang terkait dengan membangun DLL ETWCLRProfiler, Anda harus memastikan bahwa Anda telah memasang Windows 10 SDK. Sayangnya perpustakaan ini cenderung tidak lagi diinstal dengan Visual Studio kecuali Anda memintanya secara eksplisit. Untuk memperbaikinya meluncurkan penginstal Visual Studio, memodifikasi instalasi, dan kemudian melihat di bawah pengembangan desktop C ++ dan memeriksa apakah opsi Windows SDK 10.0.17763.0 dipilih. Jika tidak, pilih dan lanjutkan. Kemudian coba bangun perfview lagi.
Jika Anda mendapatkan kesalahan "MSB8040: Perpustakaan yang dimatikan spektrum diperlukan untuk proyek ini", modifikasi instalasi studio visual Anda untuk memastikan bahwa Anda memiliki komponen 'MSVC V143-VS 2022 C ++ X64/X86 yang dikeluarkan Libs (terbaru) yang dipasang.
Perfview memiliki sejumlah proyek *.test yang memiliki tes otomatis. Mereka dapat dijalankan di Visual Studio dengan memilih Test -> Run -> All Tests Menu Item. Untuk hasil yang paling menyeluruh (dan tentu saja jika Anda bermaksud mengirimkan perubahan), Anda perlu menjalankan tes ini dengan pembuatan debug produk (lihat jendela teks di bilah alat atas, katanya 'debug' atau 'rilis'). Jika tes gagal, Anda dapat mengklik kanan pada tes yang gagal dan memilih item menu konteks 'debug' untuk menjalankan tes di bawah debugger untuk mencari tahu apa yang salah.
Repositori ini menggunakan Azure DevOps untuk secara otomatis membangun dan menguji permintaan tarik, yang memungkinkan masyarakat untuk dengan mudah melihat hasil pembangunan. Bangunan dan status yang tercermin di sini adalah Azure DevOps membangun status cabang utama .
️ Bangunan yang diproduksi oleh Azure DevOps CI tidak dianggap sebagai pembangunan resmi perfview, dan tidak ditandatangani atau divalidasi untuk keselamatan atau keamanan dengan cara apa pun. Integrasi build ini disediakan sebagai kenyamanan bagi peserta masyarakat, tetapi tidak didukung oleh Microsoft juga tidak dianggap sebagai saluran rilis resmi dengan cara apa pun. Untuk informasi tentang pembuatan resmi, lihat halaman halaman unduhan perfview.
Anda bisa mendapatkan banyak nilai dari basis kode sumber hanya dengan dapat membangun kode sendiri, men -debug melalui atau membuat fitur lokal yang khusus, tetapi kekuatan nyata dari perangkat lunak open source terjadi ketika Anda berkontribusi kembali ke basis kode bersama dan dengan demikian membantu masyarakat secara keseluruhan. Sementara kami mendorong ini, itu membutuhkan lebih banyak upaya secara signifikan di pihak Anda . Jika Anda tertarik untuk melangkah, lihat Panduan Kontribusi Perfview dan standar pengkodean perfview sebelum Anda mulai.
Kode ini dipecah menjadi beberapa bagian utama: