共用方式為


練習 4 - 使用 MXA 分析音訊問題

在此實驗室中,您將分析音訊問題。 音訊問題通常是下列其中一個問題所造成:

  • 延遲程序呼叫 (DPC) 或執行超過 1 毫秒的 ISR (ISR) 插斷服務常式。

  • 在分派層級執行 1 毫秒或更長的驅動程式或核心執行緒。

  • 資料無法從磁片讀取,或網路因為磁片或網路使用率偏高而不夠快。

  • 硬體或軟體解碼器無法解碼並處理比即時快的資料流程。

步驟 1:在 MXA 中開啟追蹤,並將相關的資料集拖曳至面板

  1. 安裝屬於Windows ADK一部分的 Media eXperience Analyzer (MXA)

  2. 以滑鼠右鍵按一下 [開始]功能表,然後按一下[命令提示字元] (管理員)

  3. 流覽至您安裝 MXA的資料夾。

  4. 在您的電腦上設定 MXA 符號路徑。

  5. 從這裡下載AudioGlitches_ThreadsAtDispatchLevel.etl

  6. 輸入下列命令來開啟 AudioGlitches_ThreadsAtDispatchLevel.etl 追蹤檔案:

    xa.exe -i <AudioGlitches_ThreadsAtDispatchLevel.etl location>\AudioGlitches_ThreadsAtDispatchLevel.etl
    

    例如,如果您已 將 AudioGlitches_ThreadsAtDispatchLevel.etl 下載至 C:\Performance\Media,您會輸入下列命令:

    xa.exe -i C:\Performance\Media\AudioGlitches_ThreadsAtDispatchLevel.etl
    
  7. MXA 啟動顯示畫面上,按 [ 關閉符號] 按鈕以關閉符號查閱。

    媒體 eXperience Analyzer (MXA) 、符號選項按鈕的螢幕擷取畫面。

  8. 載入追蹤之後,按下每個面板名稱旁的小 X,關閉應用程式中央顯示的任何開啟面板。

  9. 新增 3 個新的面板。 按一下[檢視>新面板] 或按CTRL+N

  10. 將 [媒體] 節點下的[音訊問題] 資料集拖放到頂端面板。

  11. 排程器 資料集拖放到頂端的第 2 個面板的 CPU 節點下。

  12. 從頂端將 [ 取樣設定檔 ] 資料集拖放到第三個面板的 [CPU ] 節點下。

  13. 將閒置進程篩選出檢視,以便更清楚地看到其他執行緒活動。 在資料集樹狀目錄中,展開CPU節點中的排程器資料集,然後按一下 [閒置執行緒]節點核取方塊兩次以取消選取它。 按一下核取方塊一次會反白顯示圖形中的資料;按一下它兩次會取消選取。

步驟 2:識別發生音訊問題之追蹤的區域

您可以查看事件追蹤記錄檔中的音訊引擎資料 (.etl) 檔案,以查看發生這些問題時的視覺時程表,並將時間軸與其他資料集進行比較,以尋找模式。

  1. 按一下滑鼠並拖曳到頂端 [ 音訊問題 ] 面板的其中一個橫條上方,以放大音訊問題。

  2. 請注意,第 2 個面板中排程器資料集中的iexplore.exe程式長時間執行, (~20-35 毫秒) 音訊問題之前。

  3. 按逸出以縮小 100%,然後重複上述兩個步驟,確認 iexplore.exe 進程長時間執行的模式, (~20-35 毫秒) 每個音訊問題之前。

  4. 若要測量面板內的時間,當您將滑鼠從iexplore.exe進程列的一端拖曳到另一端時,請按SHIFT鍵。 滑鼠游標上的工具提示會顯示您在時間軸上測量的毫秒數。 在下方 的 MXA 螢幕擷取畫面中,進程正在執行約 35 毫秒。

    媒體 eXperience Analyzer (MXA) 螢幕擷取畫面,其中顯示大約 35 毫秒執行的範例進程。

步驟 3:識別管線中延遲的原因

在此音訊問題之前,長時間執行的 iexplore.exe 進程是在其中一個核心上執行。 若要瞭解iexplore.exe執行緒如何停止音訊管線,您可以查看CPU節點中對應的取樣設定檔資料集。

  1. 如果MXA視窗中看不到CallStack Dataviewer,請按一下 [> 視資料檢視器>CallStack] 將其開啟。

  2. 在頂端) (第 3 個 [取樣設定檔] 面板中,將滑鼠停留在符合 長時間執行iexplore.exe 執行緒之相同色彩的範例設定檔事件上。

  3. CallStack視窗會顯示每個範例的 callstack。 請注意,當您將滑鼠停留在核心中執行iexplore.exe的大部分範例時, ImageRAMONA.sys的特定驅動程式位於CallStack頂端。

  4. 雖然 audiodg.exe 執行緒的優先順序高於 (優先順序 22) iexplore.exe執行緒 ( 優先順序 19) ,但 iexplore.exe 執行緒會呼叫驅動程式 (ImageRAMONA.sys) ,這會引發處理器的 IRQL 層級。 因此, audiodg.exe,其正在等候發送器保留的 DPC 沒有機會在其一般 10 毫秒的步調上執行,導致音訊問題。

  5. 按住 SHIFT 鍵來凍結 CallStackProperties 資料檢視器 ,並將滑鼠移至 CallStack。 按 [複製]。

Media eXperience Analyzer (MXA) 螢幕擷取畫面,其中顯示 CallStack dataviewer。