Поделиться через


Упражнение 4. Использование MXA для анализа звуковых сбоев

В этом задании вы проанализируете сбои звука. Сбои звука часто вызваны одной из следующих проблем:

  • Отложенный вызов процедуры (DPC) или подпрограмма службы прерывания (ISR), которая выполняется дольше 1 миллисекунда.

  • Поток драйвера или ядра, который выполняется на уровне диспетчеризации в течение 1 миллисекунда или более.

  • Данные не могут быть прочитаны с диска или сеть недостаточно быстра из-за высокой загрузки диска или сети.

  • Аппаратный или программный декодер не может декодировать и обрабатывать поток быстрее, чем в режиме реального времени.

Шаг 1. Откройте трассировку в MXA и перетащите соответствующие наборы данных на панели

  1. Установите анализатор media eXperience Analyzer (MXA), который является частью Windows ADK.

  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 (MXA).

  8. После загрузки трассировки закройте все открытые панели, которые отображаются в центре приложения, нажав клавишу X рядом с именем каждой панели.

  9. Добавление 3 новых панелей. Щелкните Просмотреть>новую панель или нажмите клавиши CTRL+N.

  10. Перетащите набор данных Audio Glitches Classic под узлом Мультимедиа на верхнюю панель.

  11. Перетащите набор данных планировщика под узлом ЦП на 2-ю панель сверху.

  12. Перетащите набор данных Выборка профилей под узлом ЦП на 3-ю панель сверху.

  13. Отфильтруйте неактивные процессы из представления, чтобы вы могли более четко видеть действия другого потока. В дереве набора данных разверните набор данных планировщика в узле ЦП и дважды установите флажок Узел Неактивные потоки , чтобы отменить его выбор. Если установить флажок один раз, данные на графике будут выделены; Если щелкнуть его дважды, он отменяет выбор.

Шаг 2. Определение области трассировки, в которой произошел сбой звука

Вы можете просмотреть данные звукового модуля из файлов журнала трассировки событий (ETL), чтобы увидеть визуальное временная шкала, когда произошли эти сбои, и сравнить временная шкала с другими наборами данных для поиска шаблонов.

  1. Увеличьте звуковой сбой, щелкнув и перетащив указатель мыши на одну из полос на панели Audio Glitches Classic в верхней части.

  2. Обратите внимание, что процесс iexplore.exe в наборе данных планировщика на второй панели выполнялся в течение длительного времени (около 20–35 мс) непосредственно перед звуковым сбоем.

  3. Нажмите клавишу ESCAPE, чтобы уменьшить масштаб на 100 %, а затем повторите предыдущие два шага, чтобы проверить шаблон, в котором процессiexplore.exe выполнялся в течение длительного времени (около 20–35 мс) до каждого сбоя звука.

  4. Чтобы измерить время на панели, нажимайте клавишу SHIFT при перетаскивании мыши с одного конца iexplore.exe панели обработки на другой. Подсказка над курсором мыши показывает, сколько миллисекундах вы измеряете на временная шкала. На приведенном ниже снимке экрана MXA процесс выполнялся около 35 миллисекундах.

    Снимок экрана: анализатор мультимедиа eXperience (MXA) с примером процесса, выполняющегося около 35 миллисекундах.

Шаг 3. Определение причины задержек в конвейере

До этого звукового сбоя на одном из ядер выполнялся длительный процессiexplore.exe . Чтобы узнать, как потокiexplore.exe зависает в звуковом конвейере, можно просмотреть соответствующий набор данных Sampled Profiles в узле ЦП .

  1. Если средство просмотра данных CallStack не отображается в окне MXA, щелкните Просмотреть> вызовсредства просмотра> данных, чтобы открыть его.

  2. На панели Выборка профилей (3-й сверху) наведите указатель мыши на события примера профиля, которые соответствуют тому же цвету длительного потокаiexplore.exe .

  3. В окне CallStack отображается объект calltack для каждого примера. Обратите внимание, что конкретный драйвер, ImageRAMONA.sys, находится в верхней части CallStack при наведении указателя мыши на большинство примеров в ядре, на котором выполняется iexplore.exe .

  4. Хотя поток audiodg.exe выполняется с более высоким приоритетом (приоритет 22), чем потокiexplore.exe (приоритет 19), потокiexplore.exe вызывает драйвер (ImageRAMONA.sys), который повышает уровень IRQL процессора. В результате audiodg.exe, который ожидает на DPC, удерживаемом диспетчером, не имеет возможности работать на регулярной частоте 10 мс, что приводит к сбоям звука.

  5. Удерживая нажатой клавишу SHIFT, зафиксируйте средство просмотра данныхCallStack и Properties и переместите указатель мыши на CallStack. Нажмите кнопку Копировать.

Снимок экрана: анализатор мультимедиа eXperience (MXA) с представлением данных CallStack.