Latihan 4 - Gunakan MXA untuk Menganalisis Gangguan Audio
Di lab ini, Anda akan menganalisis gangguan audio. Gangguan audio sering disebabkan oleh salah satu masalah berikut:
Panggilan Prosedur Ditangguhkan (DPC) atau Rutinitas Layanan Interupsi (ISR) yang berjalan lebih dari 1 milidetik.
Driver atau rangkaian kernel yang berjalan pada tingkat pengiriman selama 1 milidetik atau lebih.
Data tidak dapat dibaca dari disk atau jaringan tidak cukup cepat karena pemanfaatan disk atau jaringan yang tinggi.
Dekoder perangkat keras atau perangkat lunak tidak dapat mendekode dan memproses aliran lebih cepat daripada real-time.
Langkah 1: Buka jejak di MXA dan seret himpunan data yang bersangkutan ke panel
Instal Media eXperience Analyzer (MXA) yang merupakan bagian dari Windows ADK.
Klik kanan pada menu Mulai dan klik Prompt Perintah (Admin).
Navigasi ke folder tempat Anda menginstal MXA.
Atur jalur simbol MXA di PC Anda.
Unduh AudioGlitches_ThreadsAtDispatchLevel.etl dari sini.
Buka file jejak AudioGlitches_ThreadsAtDispatchLevel.etl dengan mengetik perintah berikut:
xa.exe -i <AudioGlitches_ThreadsAtDispatchLevel.etl location>\AudioGlitches_ThreadsAtDispatchLevel.etl
Misalnya, jika Anda mengunduh AudioGlitches_ThreadsAtDispatchLevel.etl ke C:\Performance\Media, Anda akan mengetik perintah berikut:
xa.exe -i C:\Performance\Media\AudioGlitches_ThreadsAtDispatchLevel.etl
Pada layar percikan MXA , tekan tombol Matikan Simbol untuk menonaktifkan pencarian simbol.
Setelah jejak dimuat, tutup panel terbuka apa pun yang muncul di tengah aplikasi dengan menekan X kecil di samping nama setiap panel.
Tambahkan 3 panel baru. Klik Tampilkan>Panel Baru atau tekan CTRL+N.
Seret dan letakkan himpunan data Audio Glitches Classic di bawah simpul Media ke panel atas.
Seret dan letakkan himpunan data Scheduler di bawah simpul CPU ke panel ke-2 dari atas.
Seret dan letakkan himpunan data Profil Sampel di bawah simpul CPU ke panel ke-3 dari atas.
Filter proses diam dari tampilan sehingga Anda dapat melihat aktivitas utas lainnya dengan lebih jelas. Di pohon himpunan data, perluas himpunan data Scheduler di simpul CPU dan klik kotak centang simpul Idle Threads dua kali untuk membatalkan pilihannya. Mengklik kotak centang setelah menyoroti data dalam grafik; mengkliknya dua kali membatalkan pilihannya.
Langkah 2: Identifikasi wilayah jejak tempat kesalahan audio terjadi
Anda dapat melihat data mesin audio dari file log jejak peristiwa (.etl) untuk melihat garis waktu visual ketika gangguan ini terjadi dan membandingkan garis waktu dengan kumpulan data lain untuk mencari pola.
Perbesar pada kesalahan audio dengan mengklik dan menyeret mouse ke salah satu bilah di panel Audio Glitches Classic di bagian atas.
Perhatikan bahwa proses iexplore.exe dalam himpunan data Scheduler di panel ke-2 berjalan untuk waktu yang lama (~20-35ms) tepat sebelum kesalahan audio.
Tekan escape untuk memperkecil 100% lalu ulangi dua langkah sebelumnya untuk memverifikasi pola di mana proses iexplore.exe berjalan selama durasi panjang (~20-35 ms) sebelum setiap kesalahan audio.
Untuk mengukur waktu di dalam panel, tekan tombol SHIFT saat Anda menyeret mouse dari salah satu ujung bilah proses iexplore.exe ke ujung lainnya. Tipsalat di atas kursor mouse menunjukkan berapa milidetik yang Anda ukur pada garis waktu. Dalam cuplikan layar MXA di bawah ini, prosesnya berjalan selama sekitar 35 milidetik.
Langkah 3: Identifikasi penyebab keterlambatan dalam alur
Sebelum kesalahan audio ini, proses iexplore.exe yang berjalan lama berjalan di salah satu inti. Untuk mengetahui bagaimana utas iexplore.exe mengulur alur audio, Anda dapat melihat himpunan data Profil Sampel yang sesuai di simpul CPU .
Jika penampil data CallStack tidak terlihat di jendela MXA, klik Tampilkan>CallStackPenampil> Data untuk membukanya.
Di panel Profil Sampel (ke-3 dari atas), arahkan mouse ke atas sampel peristiwa profil yang cocok dengan warna yang sama dengan utas iexplore.exe yang berjalan lama.
Jendela CallStack memperlihatkan callstack untuk setiap sampel. Perhatikan bahwa driver tertentu, ImageRAMONA.sys, berada di bagian atas CallStack saat Anda mengarahkan mouse ke sebagian besar sampel di inti tempat iexplore.exe berjalan.
Meskipun utas audiodg.exe berjalan pada prioritas yang lebih tinggi (prioritas 22) daripada utas iexplore.exe (prioritas 19), aluriexplore.exe memanggil ke driver (ImageRAMONA.sys), yang meningkatkan tingkat IRQL prosesor. Akibatnya, audiodg.exe, yang menunggu DPC yang dipertahankan oleh dispatcher tidak memiliki kesempatan untuk berjalan pada irama 10ms biasa, yang mengakibatkan gangguan audio.
Tahan tombol SHIFT untuk membekukan Penampil DataCallStack dan Properti dan gerakkan mouse Anda ke CallStack. Tekan Salin.