Опыт лечения за-за-заикания звука в Windows 10

Автор: Владимир Сирота, 22 мая 2017, 11:22
Опыт лечения за-за-заикания звука в Windows 10

Что ни говорите, а Windows 10 отличная операционная система! И пока Юрий Юрьевич сушит весла, я подхвачу его эстафету и расскажу вам о замеченных прелестях этой операционной системы.

Небольшое отступление перед наступлением

И хотя злые языки утверждают обратное, глядя на богатство настроек новой ОС

image001.png

или, взирая на взгрустнувший смайлик BSOD после установки драйверов какого-нибудь «продвинутого» сетевого адаптера Netis WF2190, мы не поддаемся на провокации! Как принято писать в интернете, «Windows 10 лудше всех»!

Не, ну разве ж это проблемы? В первом случае можно просто забить на настройки и пользоваться адаптером «как есть» (или даже попробовать бросить камень в огород Intel, вдруг «починят»), а во втором – заменить родной драйвер от WF2190 (бросать камни в огород Netis занятие бесполезное — там ведь болото) на драйвер адаптера Linksys WUSB6300 и ограничить ширину канала беспроводной связи 802.11ас с 80 до 40 МГц на роутере. В реальной скорости работы по сети вы практически не потеряете (если, конечно, в сети нет других быстрых адаптеров ас), зато получите стабильную работу беспроводного адаптера без «отвалов» Wi-Fi и зависания системы. Это ведь прекрасно!

Но мы, кажется, отвлеклись от нашей основной темы. Итак, уже имея опыт починки ноутбука с помощью супер-операционной системы, теперь посмотрим, как с помощью Windows 10 удалось избавится от за-за-заикания звука на ПК. Причиной которого, по странному стечению обстоятельств, тоже является Windows 10, но не в этом же суть…

Не за-за-заикайся!

Итак, дело было вечером на неновом, но и не совсем унылом ПК – это система с 4ГБ оперативки, 4-ядерным 2.66 ГГц процессором Intel Core 2 Quad Q6700 и быстрой беспроводной сетевой картой 802.11ас, подключенной в порт USB 3.0. Ну и свежеустановленная Windows 10 со всеми драйверами, причем оригинал от Microsoft, а не какая-нибудь «левая» сборка. По идее, на таком компе воспроизведение звука тормозить не должно. Однако… При просмотре видео по сети (как с иных компьютеров в локальной сети, так и с YouTube и прочих онлайн-ресурсов) звук прерывался и за-за-заикался. Похожая картина обычно бывает, когда в фоновом режиме активно работают торренты (в таком случае стоит их отключить, и звук по сети нормализуется). Но здесь не было никаких торрентов. Поэтому нужно было брать бутылку пива и «копать». Хотя согласен, с одной бутылкой копать неудобно. Две — в самый раз…

Итак, я углубился в поиски причин задержки звука. Запуск утилит DPC Latency Checker и LatencyMonitor показал какой-то ужас: в режиме «Сбалансированная» производительность была просто удручающей! Задержки выполнения в очереди ожидающих обработки процедур оказались вопиюще огромны. Шутка ли, почти 9 мс задержки для текущих задач и до 18 мс в максимуме!

image002.png

Причем, как вы изволите видеть, само ядро системы (ntoskrnl.exe) явно не торопилось работать. В общем, все эти миллисекунды в итоге складываются (при обработке сетевых пакетов, при обработке сигнала аудиотрактом) и в сочетании с невысоким приоритетом обработки аудио – имеем результат в виде подлагивающего и прерывистого звука.

В таких случаях «знатоки» из интернета обычно советуют искать драйвера устройств, вызывающих «тормоза», но в данном случае виноваты были явно не они. Об ntoskrnl.exe я уже писал выше, а Wdf1000.sys – это тоже часть ядра системы, а именно Windows Driver Framework. Обычно в таких дурацких тяжелых случаях избавится от заикания звука помогает переход в режим «Высокая производительность», когда лаги в очереди исполнения программного кода нивелируются за счет активного задействования более высокой частоты процессора. И действительно, в режиме «Высокая производительность» с постоянной максимальной частотой процессора 100% проблемы со звуком исчезли.

image003.png

Но сама проблема производительности не ушла — задержки хоть и снизились вдвое-втрое, но все равно оставались подозрительно высокими. А стоило в режиме «Высокая производительность» разрешить процессору переходить в режим с минимальной частотой согласно технологии EIST (например, выставив «Минимальное состояние процессора» в стандартные 5%), как проблема со звуком вновь представала во всей красе.

Не мудрствуя лукаво, я уже думал так и оставить все это дело на 100% частоте процессора (ведь проблема заикания звука вроде бы как решена), хотя постоянная работа 4-ядерного ЦПУ на повышенных частотах – это, конечно, не лучший вариант с точки зрения энергопотребления и шума кулера. И уже из чистого любопытства я решил посмотреть, что же будет в режиме электропитания «Экономия энергии», ожидая увидеть какие-нибудь шокирующие экстра-гигантские лаги. Но увиденное меня буквально ошарашило! Неужели пиво было столь крепкое, что прибежала белка? Но нет, скриншоты наглядно доказывали, что алкоголь здесь не при чем: латентность выполнения процедур в режиме «Экономия энергии» пришла в норму!

Такой фигни глюкавости нелепицы ерунды косячности неожиданной работы планов энергопотребления я не видел ни в ХР, ни в 7-ке. Это было совершенно новое слово в программировании, и разработчики новой Windows 10 сумели превзойти не только своих старших товарищей, но и рамками здравого смысла. К счастью, мы же с вами знаем, что Windows 10 – отличная операционная система. Как она создала проблему, так сама же и помогла ее решить. И это прекрасно!

image004.png

Лагов нет! Это победа!

Для полноты картины на скриншоте ниже обратите внимание на окошко DPC Latency Checker, где отображен весь ужас момента перехода с режима «Экономия энергии» к режиму «Высокая производительность».

image005.png

Ну, а поскольку проблемы с заиканием звука на платформе Windows не такая уж редкость, даже на новых платформах, возможно наш опыт борьбы с этой напастью кому-то поможет.

В сухом остатке

Будь у вас самое идеальное и быстрое железо, если программисты накосячили – готовьтесь к тормозам и необходимости ковырять в настройках. В нашем случае причиной проблем со звуком оказалась дивная настройка планов электропитания ОС Windows 10. У меня закончилось пиво не было времени объяснять выяснять, где именно спрятан косяк в уйме скрытых от пользователя настроек этой системы (именно скрытые настройки помогли нам в свое время починить ноутбук). Поэтому я просто оставил все работать as is в режиме «Экономия энергии». Компьютер работает прекрасно и быстро, лаги звука забыты как страшный сон, процессор использует весь доступный диапазон частот 1,6 – 2,66 ГГц при полной активности технологий энергосбережения EIST и C1E. Кстати да, чтобы вы не подумали что это была тормозная система – Лара здесь весьма шустро бегает в Rise of the Tomb Raider, стабильно выдавая во встроенном бенчмарке чуть более 30 fps на средних настройках при разрешении 1600х1200.

Р.S. Питаю робкую надежду, что к следующему юбилейному обновлению Windows косяки в настройках режимов работы ОС поправят. Обязательно уточню, что рассмотренная проблема не носит массовый характер и не характерна для всех систем. По крайней мере, проверка работы в разных режимах энергосбережения на двух имеющихся в моем распоряжении ноутбуках и десктопе с процессором Хeon X5450 не показала наличия подобных проблем с латентностью.  Очень подозреваю, что проблема может быть связна с тем, что Windows в производительных режимах пытается слишком часто изменять частоту процессора и перераспределять вычислительную нагрузку по разным ядрам, а старенькие чипы типа Q6700 очень такого не любят, ведь обмен данными между парами ядер у них идет по относительно медленной системной шине. Но это лишь мои предположения.

Для тех, кто хочет знать больше

Подписывайтесь на наш нескучный канал в Telegram, чтобы ничего не пропустить.

Поделиться