Технические вопросы и ответы QA1467

Предупреждения перегрузки CoreAudio

 Q: CoreAudio отправляет мне случайные предупреждения перегрузки при обработке аудио. Что эти предупреждения означают, и что я должен сделать, чтобы помочь устранить эти проблемы?

A: CoreAudio отправляет мне случайные предупреждения перегрузки при обработке аудио. Что эти предупреждения означают, и что я должен сделать, чтобы помочь устранить эти проблемы?

HAL IOProc является ограниченным временем, высокоприоритетным потоком. CoreAudio генерирует перегрузку, предупреждающую, чтобы указать, что недавний цикл I/O брал слишком долго для завершения. Когда выделенное время, HAL, истекает перед возвратами IOProc, это происходит. Эти типы предупреждений могут быть банальными под высокой загрузкой ЦП и/или низкими условиями памяти. Когда память редка, некоторые задачи уровня ядра могут также заставлять Ваш IOProc быть вытесненным, разбивка на страницы VM, являющаяся большой, особенно.

Оптимизируйте! Оптимизируйте! Оптимизируйте!

Если Вам установили инструменты CHUD Apple, можно использовать Акулу и/или Сатурн для профилирования IOProc. Эти инструменты позволят Вам определять любые узкие места или вытеснения IOProc, вызванные Вашим кодом. Инструменты и документация доступны онлайн под Производительностью и Отладкой.

Apple также обеспечивает утилиту HALLab (/Developer/Examples/CoreAudio/HAL/HALLab). Можно использовать это приложение для контроля статистики цикла I/O для получения лучшее представление о том, где в цикле происходит перегрузка. Эта информация может найденный в окне IO Telemetry (Файл-> Новый:).

Обработайте аудио вне потока HAL

Если применимо к Вашей ситуации, рекомендуется создать отдельный поток для подготовки аудиоданных для IOProc. Например, файл или сеть I/O, распаковка кодека или другие задачи, которые могут вызвать высокий уровень задержки, могут быть сделаны от более низкого приоритетного потока. Результирующие данные могут тогда питаться к IOProc.

Некоторые простые подсказки:

Ссылки



История версии документа


ДатаПримечания
29.03.2006

Новый документ, описывающий предупреждения перегрузки CoreAudio, что они имеют в виду и как избежать их.