Memecahkan masalah kesalahan pembuatan profil dan memperbaiki masalah
Artikel ini menyediakan solusi untuk beberapa kesalahan paling umum yang dapat mencegah penggunaan atau mendapatkan data yang memadai dari Profiler Performa di Visual Studio.
Tidak ada hasil
Kesalahan: "Tidak ada data dalam kumpulan filter saat ini"
Saat membuka file diagnosis , filter tertentu diterapkan seperti menyembunyikan kode asli, atau menyembunyikan kode non-pengguna untuk membuat jejak lebih mudah dipahami. Selain itu, ada filter lain yang dapat diterapkan seperti pemilihan waktu dan utas, yang semakin mempersempit data yang ditampilkan. Jika filter ini diterapkan dengan cara yang tidak ada data tersisa untuk ditampilkan, maka Anda akan melihat peringatan ini.
Cara memperbaikinya
- Pastikan pilihan waktu Anda memiliki data di dalamnya. Jika Anda mengubah pilihan waktu Anda dalam grafik di atas data, pilih Hapus Pilihan untuk mengatur ulang.
- Selanjutnya, jika masih belum ada data, pastikan bahwa semua kategori dan utas diaktifkan di menu dropdown masing-masing.
- Jika aplikasi yang Anda profil adalah kode asli, pastikan untuk mengaktifkan opsi Tampilkan Kode Asli di menu drop-down Pengaturan.
- Jika Anda masih tidak memiliki data, maka jejak yang Anda kumpulkan kemungkinan terlalu singkat untuk setiap data yang ada. Pastikan program yang Anda kumpulkan datanya tidak selesai terlalu cepat (kurang dari satu detik).
Lihat juga: Menampilkan Kode Eksternal
Membutuhkan waktu lama agar hasilnya selesai
Jika menganalisis timbunan setelah koleksi tampaknya lambat dimuat, lihat kemungkinan solusi berikut yang dapat membantu mengatasi masalah waktu tunggu.
Cara memperbaiki Terkadang perlu waktu lebih lama saat mencoba menganalisis rekam jepret dari aplikasi intensif memori, tetapi meningkatkan ke versi Visual Studio yang lebih baru harus mengurangi waktu tunggu analisis. Jika masalah ini terus berlanjut setelah peningkatan, mungkin ada bug performa pada alat. Buat tiket umpan balik dan bagikan file diagnosis yang dibuat. Dengan file , kita dapat menentukan mengapa data lambat untuk menganalisis dan menemukan di mana kita dapat melakukan peningkatan performa.
Pastikan untuk menyediakan file cadangan jejak dan tumpukan di tiket Umpan Balik.
Lihat juga:
Kesalahan "Tidak dapat membuat file manifes untuk diagnosis ini" atau "kesalahan tidak dapat membuat file manifes untuk diagnosis, Visual Studio tidak akan dapat membuka kembali sesi ini."
Masalah ini berarti ada masalah saat menyiapkan data rekam jepret memori untuk dianalisis dan ditampilkan setelah berhenti mengumpulkan data. Ada beberapa potensi penyebab masalah muncul, dari kegagalan untuk mendapatkan informasi yang benar dari agen pengumpulan ke pemrosesan data aktual. Oleh karena itu, tidak mungkin untuk mendiagnosis apa masalahnya tanpa pengelogan lebih lanjut.
Cara memperbaiki tiket Balasan ke tiket Umpan Balik Anda dengan informasi pengelogan tambahan sehingga kami dapat mendiagnosis masalah tersebut. Anda bisa mendapatkan informasi log dengan menjalankan perintah berikut dari prompt perintah yang ditingkatkan:
reg add HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\DiagnosticsHub /v LogLevel /t REG_SZ /d All /reg:32
reg add HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\DiagnosticsHub /v LogDirectory /t REG_SZ /d [directory of your choice] /reg:32
Setelah menjalankan perintah ini, mulai Visual Studio, reproduksi skenario Anda, tutup Visual Studio, lalu zip direktori log DiagnosticsHub yang Anda pilih dan lampirkan ke tiket ini. Dari titik itu, kita harus dapat mendiagnosis dengan lebih baik apa yang terjadi.
Setelah menambahkan log ke tiket Anda, jalankan perintah ini untuk menonaktifkan pengelogan:
reg delete HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\DiagnosticsHub /f /v LogLevel /reg:32
reg delete HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\DiagnosticsHub /f /v LogDirectory /reg:32
Kesalahan: "Informasi sumber tidak tersedia."
Untuk melihat informasi sumber, Anda harus memiliki PDB yang tersedia dari waktu pengumpulan. Jadi, misalnya, jika Anda mengumpulkan file diagnosis penggunaan CPU, buat beberapa perubahan pada kode Anda, kompilasi ulang (yang menggantikan PBD lama), lalu buka .diagsession lagi, Anda kemungkinan tidak akan dapat melihat informasi sumber untuk modul kode yang Anda perbarui.
Cara memperbaiki Solusi term mudah untuk masalah ini adalah dengan mengumpulkan diagnosis baru setelah membuat perubahan. Dengan cara ini Anda dapat yakin PDB Anda sudah diperbarui.
Kesalahan: "Analisis memori gagal karena kesalahan internal."
Setelah sesi pembuatan profil memori yang panjang, setiap upaya untuk menganalisis hasilnya terpenuhi dengan kesalahan.
Ada ketidakcocokan antara informasi rekam jepret yang diambil oleh alat memori dan agen pengumpulan. Hasil ini berarti bahwa alat memori tidak dapat menemukan file status timbunan untuk rekam jepret asli. Atau, hasil ini alat memori tidak dapat mencocokkan waktu mulai GC rekam jepret dengan yang terdaftar dalam file diagnosis untuk mengambil GCStats.
Cara memperbaiki Masalah ini disebabkan oleh bug di alat yang diperbaiki pada 17.3. Memutakhirkan ke versi yang lebih baru harus menyelesaikan masalah. Jika masalah masih terus berlanjut setelah pemutakhiran, buat tiket umpan balik dan lampirkan ke tiket:
- File diagnosis
- A minidump of Visual Studio
- Cuplikan layar rekam jepret memori yang diambil.
Tidak ada solusi untuk masalah ini dan sesi pembuatan profil perlu dimulai ulang.
Kesalahan: "Peristiwa diagnostik X dihilangkan, beberapa informasi dalam laporan mungkin hilang atau tidak akurat"
Terkadang selama pengambilan data, peristiwa dapat dihilangkan yang dapat menyebabkan laporan pembuatan profil yang dihasilkan tidak akurat atau tidak dapat digunakan. Peristiwa yang dihilangkan dapat terjadi karena berbagai alasan, tetapi terutama terjadi ketika sistem tidak dapat menghapus peristiwa ke disk lebih cepat daripada tingkat masuk.
Cara memperbaiki Untuk membantu mengurangi peristiwa yang dihilangkan, Anda dapat menutup operasi intensif disk dan CPU lainnya saat membuat profil. Dengan menutup operasi ini, sistem dapat mendedikasikan lebih banyak sumber daya untuk membersihkan peristiwa yang masuk. Anda juga dapat mencoba mengurangi frekuensi pengambilan sampel pada alat yang mendukung pengaturan konfigurasi ini, seperti alat Penggunaan CPU dan alat Alokasi .NET, dan dengan demikian mengurangi overhead.
Kesalahan: Sumber daya ETW telah habis
Profiler Visual Studio menggunakan Pelacakan Peristiwa untuk Windows (ETW) untuk mengumpulkan informasi performanya. Ada sejumlah terbatas sesi ETW yang tersedia untuk digunakan pada sistem dan jika semua sesi sudah digunakan, Anda mendapatkan kesalahan berikut: ETW resources have been exhausted
. Sesi ini digunakan oleh program lain seperti rangkaian alat SysInternals, profiler lain, dan alat diagnostik lainnya. Anda dapat mengatasi masalah ini dengan:
Menutup program yang menggunakan sesi untuk membebaskan sumber daya, atau
Sisihkan lebih banyak sumber daya dengan menjalankan yang berikut ini dari prompt perintah yang ditingkatkan lalu boot ulang:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI" /v EtwMaxLoggers /t REG_DWORD /d 128
Menjalankan perintah ini meningkatkan jumlah sesi default dari 64 menjadi 128 (256 adalah jumlah maksimum sesi yang diizinkan pada sistem).
Kesalahan: Alat Penggunaan CPU tidak berfungsi pada ARM64 VM
Profiler Visual Studio menggunakan Pelacakan Peristiwa untuk Windows (ETW) untuk mengumpulkan informasi performanya. Saat ini, mengumpulkan sampel profil menggunakan ETW tidak didukung pada Windows untuk ARM64 saat berjalan di Komputer Virtual (VM). Untuk mengatasi batasan ini, Anda dapat menggunakan alat Penggunaan CPU pada perangkat ARM64 yang sebenarnya atau menggunakan alat Instrumentasi untuk menangkap informasi waktu.
Kesalahan: Alat Penggunaan Memori tidak berfungsi pada .NET 7 dan .NET Runtime 8.0.0-8.0.1 dengan Server GC diaktifkan
Karena masalah yang diperkenalkan dengan runtime .NET 7 dan disebarkan ke runtime .NET 8 versi 8.0.0 dan 8.0.1, tidak dimungkinkan untuk menghitung objek saat menggunakan pengumpulan sampah server. Pengumpulan sampah server diaktifkan secara default untuk aplikasi ASP.NET Core.
Cara memperbaikinya
Untuk mengatasi masalah ini:
- Nonaktifkan pengumpulan sampah server saat mengambil rekam jepret atau mengumpulkan cadangan aplikasi Anda.
- Gunakan versi .NET Runtime yang tidak terpengaruh.
Lihat juga:
- Pengumpulan sampah server dan stasiun kerja
- Opsi konfigurasi runtime bahasa umum untuk pengumpulan sampah
- DAC gagal menghitung objek tumpukan pada .NET 7+ karena Wilayah GC