как получить оптимизацию, переименовав браузер / Хабр
Всем привет! Меня зовут Максим Смирнов, я руковожу командой, которая работает над производительностью Яндекс Браузера и отвечает за его графическую подсистему. В этой статье я расскажу об одном неочевидном улучшении, которое наша команда внедрила в Браузер для Windows. Если описать его в двух словах, то нам удалось улучшить стабильность и производительность браузера, убедив драйверы видеокарт, что наше приложение — это Google Chrome.
Что мы знаем о взаимодействии драйверов с программами
Приложения обычно используют драйверы через API операционной системы. Так они могут обращаться к функциям, которые предоставляет железо. Например, видеоигры через программный интерфейс Direct3D или OpenGL обращаются к драйверам видеокарт, которые отрисовывают графику с максимальным использованием возможностей современных видеоускорителей.
А еще не секрет, что производители видеокарт сильно вовлечены в индустрию геймдева и зачастую оптимизируют свои драйверы под конкретные игры. Об очередной прибавке fps или починке бага в том или ином тайтле любят рассказать как AMD, так и Nvidia.
Критерием для применения определённых оптимизаций при этом иногда может выступать не что иное, как название исполняемого файла программы. Хрестоматийный пример — Quake III. При переименовании экзешника quake3.exe в quaff3.exe в игре изменялись производительность и качество текстур.
Применение workaround по названию исполняемого файла не ограничивается только играми. Когда-то наша команда столкнулась с одним багом: на ноутбуках Lenovo в Яндекс Браузере скроллинг веб-страниц с тачпада был слишком резким, но при этом в других браузерах (Chrome и Edge) такой проблемы не наблюдалось.
Посмотрев код, мы поняли, что логика обработки событий тачпада у нас не отличается от опенсорсного Chromium, на котором основан и наш браузер, и Google Chrome. Значит, проблема крылась в чём-то другом.
Интереса ради мы попробовали переименовать исполняемый файл нашего браузера из browser. exe в chrome.exe — и вуаля! Скачки при скроллинге починились. Вероятно, в драйверах тачпада был «захардкожен» определённый список названий файлов приложений, для которых применялся фикс этой проблемы.
Как нам пришла в голову идея переименовать браузер
Мы регулярно ищем новые способы для оптимизации производительности Яндекс Браузера и улучшения стабильности его работы. Некоторые оптимизации даже прорастают в Chromium.
Одна из наших ключевых метрик стабильности — количество крэшей GPU-процесса, который отвечает за быстрый рендеринг всего содержимого в браузере. Пользователь обычно их не замечает, потому что процесс автоматически перезапускается. Но крэши неприятны тем, что если их количество превышает определённый лимит, браузер автоматически переключается из аппаратного режима отрисовки графики в софтверный, не использующий все возможности видеокарты.
На одном из стендапов мы обсуждали идеи по улучшению стабильности работы GPU-процесса и вспомнили об описанном выше случае с тачпадом, а ещё о практике производителей видеокарт внедрять оптимизации для конкретных игр. Возникло логичное предположение: а не может ли в драйверах GPU быть каких-то фиксов или оптимизаций для Google Chrome? Мы решили проверить это на практике.
Проверяем гипотезу
Чтобы проверить нашу гипотезу про оптимизации, мы воспользовались особенностью архитектуры Chromium. GPU-процесс в браузере работает в специальной песочнице. Она предназначена для обеспечения безопасности приложения — ограничивает доступ процесса к ресурсам системы и другим процессам. Такая схема уменьшает потенциальный результат работы зловредного кода, если злоумышленникам каким-то образом удастся внедрить его в процесс. Также песочница позволяет устанавливать хуки для перехватывания вызовов системных API и обрабатывать их в своём коде.
Мы воспользовались этой особенностью, чтобы подменять подстроку browser.exe на chrome.exe в значениях, которые возвращают функции GetModuleFilenameA/GetModuleFilenameW и GetModuleFilenameExA/GetModuleFilenameExW.
Преимуществом такого решения оказалось то, что подмена наблюдается только внутри самого процесса. В реальности название исполняемого файла остаётся прежним, и в диспетчере задач процессы браузера отображаются по-прежнему как browser.exe.
Чтобы проверить, что трюк работает, достаточно поставить брейкпойнт внутри перехваченных вызовов. В отладчике видно, что к ним действительно обращаются графические драйверы.
Экспериментируем
Дальше дело за малым: завернуть функциональность с подменой названия под отключаемый feature-флаг и провести A/B-эксперимент, то есть включить её в одной группе пользователей и отключить в другой, после чего сравнить полученные технические метрики.
Результаты нас немало удивили: у пользователей с видеокартами AMD из экспериментальной группы число крэшей GPU-процесса уменьшилось в 5,5 раз, потребление памяти GPU-процессом снизилось в среднем на 8%, а ещё незначительно ускорилось открытие веб-страниц в браузере и отзывчивость интерфейса.
Это означало, что в драйверах AMD действительно есть код, который применяется в зависимости от названия исполняемого файла приложения — в нашем случае для chrome. exe.
Мы обратились к AMD с просьбой включить наш браузер в список тех, к которым применяются данные оптимизации, однако эти изменения смогут вступить в силу ещё не скоро и только в новых версиях драйверов.
Но ждать нам не хотелось, поэтому мы включили фичу с мимикрией под Google Chrome в GPU-процессе для всех пользователей на Windows. Если вы хотите проверить, что она работает и у вас, посмотрите в графу Executable Path на служебной странице browser://gpu в Яндекс Браузере (доступно с версии 22.9.0).
Подытожим
Любое ПО всегда работает внутри определённой среды, а не изолированно. Оно взаимодействует с разными контрагентами — ОС, драйверами и другими программами, — поэтому его работу всегда стоит оценивать в связке с ними. Зная особенности работы окружения, можно попробовать подстроить под него свой софт, чтобы получить улучшения подобные тем, которые обнаружила наша команда. Мы полагаем, что это решение может принести пользу и другим chromium-based браузерам, определение которых ещё не встроено в GPU-драйверы.
Надеемся, что вам было интересно прочитать разбор этого необычного, на наш взгляд, случая из практики разработки.
что делать, почему пропало звучание
Содержание
- Почему не работает звук
- Проблема с колонками или наушниками
- Как вернуть звук в Яндекс Браузере
- Советы
- Ответы на частые вопросы
Многие пользователи используют браузер не только для просмотра текстового контента, но и для прослушивания аудио или просмотра видео. В связи с этим пропажа звука – это серьёзная проблема, которую необходимо оперативно решать. Иногда это может стать результатом случайного клика, но иногда может потребоваться полная диагностика для выявления и устранения неполадок. Но не все знают, что нужно делать, когда нет звука в Яндекс.Браузере.
Почему не работает звук
Существует множество причин, по которым звук в Яндекс Браузере может пропадать, но ключевых из них только 5:
- Функция отключена непосредственно в браузере.
- Функция выключена в микшере.
- Снижена громкость в системе.
- В работе браузера возникли неполадки.
- Проблема с настройкой или подключением аудиоустройств.
Ещё иногда пользователи сталкиваются с проблемой, когда пропал звук в браузере Яндекс только на одном конкретном сайте. Возможно, что он не настроен для работы с Яндекс.Браузером или на нём в данный момент проводятся технические работы. В любом случае знать, как вернуть звук в обозревателе, полезно.
Проблема с колонками или наушниками
Перед тем как искать причину, почему не работает звук, необходимо проверить работу колонок или наушников. Вполне возможно, что проблема кроется в их неправильной настройке или подключении. Чтобы удостовериться в их корректной работе, необходимо воспользоваться встроенной проверкой. Для этого нужно:
- Открыть «Панель управления».
- Найти «Звук».
- Открыть вкладку «Воспроизведение», там найти колонки или наушники, которые нужно проверить.
- Нажать на «Настроить».
- Выбрать звуковые каналы и нажать «Проверка».
Если с устройством всё в порядке, то во время тестирования появится звуковой сигнал. Если его нет, значит, проблема носит аппаратный характер. В том случае, когда тестирование показывает положительный результат, а в Яндексе или конкретно в Ютубе аудио всё так же не работает, неисправность кроется в самом браузере.
Как вернуть звук в Яндекс Браузере
Если с колонками (или наушниками) всё нормально, нужно переходить в браузер и искать проблему там. В некоторых случаях неисправность носит временный характер, но иногда приходится полностью переустанавливать программу, чтобы вернуть звук.
На заметку:
Перед выполнением любых манипуляций лучше проверить, включён ли звук в микшере, так как часто пользователи отключают его (или снижают громкость) и забывают об этом.
Включить звук в видео или аудио
Часто случается так, что при воспроизведении видео звук в дорожке отключён. Например, так работают большинство мессенджеров и социальных сетей. В таком случае пользователю необходимо самостоятельно включить звук, так как при появлении видео в ленте он автоматически выключается. Для этого нужно нажать на иконку динамика (в выключенном состоянии она отображается с крестиком), которая также позволяет регулировать уровень громкости.
Блокировка звука на вкладке
Функция выключения аудио на вкладке порой бывает довольно полезной, когда нужно, например, заглушить видеорекламу. Но иногда пользователи забывают о блокировке, из-за чего прослушивание аудио становится невозможным. В таком случае необходимо убедиться в том, что на вкладке разрешено воспроизведение аудио. Это можно сделать, кликнув на изображение динамика, расположенного слева от крестика.
На заметку:
Также включить или выключить блокировку можно, нажав правой клавишей по необходимой вкладке и выбрав соответствующий пункт.
Изменить настройки микшера
Иногда причиной пропадания звука в Yandex Browser может быть изменение настроек микшера. Для тех, кто не знает, что делать в этом случае, вот небольшая инструкция:
- Кликнуть ПКМ по иконке динамика в правом нижнем углу.
- Выбрать пункт «Открыть микшер громкости».
- Проверить уровень звука в разделе «Устройство».
- Проверить уровень звука рядом с изображением Яндекс.Браузера.
Также желательно проверить, включён ли звук вообще. За это отвечает первый столбец под названием «Устройство».
Очистка временных файлов
Иногда причина отсутствия звуковых сигналов может крыться в сбое программы. Временные файлы могут негативно влиять на работу браузера, поэтому их необходимо подчищать. Для этого нужно:
- Открыть меню браузера.
- Нажать на пункт «История».
- Найти ссылку «Очистить историю».
- В строке «Удалить записи» выбрать промежуток, например, «За всё время».
- Выбрать пункты, которые необходимо удалить.
- Нажать на «Очистить историю».
Если проблема отсутствия звука крылась во временном сбое, то этот шаг должен помочь её исправить. Данную процедуру желательно проводить время от времени вне зависимости от появления сбоев. Так браузер будет работать более корректно и быстро.
Переустановка браузера
Если не один из вышеперечисленных способов не помог, значит, нужно попробовать переустановить веб-обозреватель. Для этого его нужно сначала полностью удалить, а потом заново скачать и установить. Как это сделать:
- Открыть «Панель управления».
- Выбрать пункт «Программы и компоненты».
- Найти Яндекс Браузер и удалить его.
- Зайти на сайт Яндекс Браузера и скачать последнюю версию.
- Запустить файл установки, следуя инструкции.
Браузер может сам предложить себя переустановить после удаления. В таком случае даже не придётся загружать установочный файл.
Другие проблемы
Есть и более редкие проблемы, из-за которых звук в браузере может пропадать или значительно ухудшаться.
Проблема | Решение |
Неполное подключение кабеля | Проверить, чтобы mini jack-разъём был вставлен полностью, и у него не было серьёзных перегибов. |
Неисправен порт | В таком случае звук будет пропадать не только в браузере, но и в других программах. Решение – замена порта. |
Расширения | Иногда проблема может крыться в расширениях, контролирующих аудио на вкладках. Необходимо проверить их и в случае необходимости удалить через вкладку «Расширения» в меню. |
Вирусы | За исчезновение звука могут быть ответственны вредоносные программы. Чтобы их обнаружить и удалить, необходимо запустить глубокую проверку антивирусом. |
Перед тем как проводить полную диагностику компьютера, необходимо проверить 5 основных причин отсутствия звука. Чаще всего проблема кроется именно в них и решается очень быстро.
Советы
Совет №1
В некоторых плеерах есть отдельная горячая клавиша для включения/выключения звука. Например, в Youtube за это отвечает кнопка m.
Совет №2
Если звук есть, но качество сильно страдает, то причина, скорее всего, носит аппаратный характер. В таком случае лучше сначала проверить исправность кабеля и портов.
Совет №3
Большинство сайтов отказывается от работы с Adobe Flash, однако отсутствие звука может быть связано и с ним. В таком случае желательно его переустановить, зайдя на официальный сайт и следуя всем инструкциям.
Ответы на частые вопросы
Какие из временных файлов можно оставить?
Удалить желательно всё, кроме медиалицензий и автозаполнения форм.
Как часто рекомендуется очищать временные файлы, чтобы не возникало сбоев в работе браузера?
Примерно раз в месяц.
Можно ли в настройках микшера прибавлять или снижать громкость для отдельных программ?
Да, при необходимости в настройках микшера можно увеличивать или понижать громкость для различных приложений в отдельности.
UnDistracted — скрытие каналов Facebook, YouTube
UnDistracted — скрытие каналов Facebook, YouTube — Интернет-магазин Chromeпредлагается undistracted.app
30 000+ пользователей
Обзор
Поднимитесь над поглотителями времени
9001 0 Это расширение Chrome станет помощник в вашем стремлении контролировать время, которое мы проводим каждый день в печально известных поглотителях времени: Facebook, YouTube, Twitter, Reddit, LinkedIn и Netflix. Мы все знаем, насколько отвлекающими и захватывающими могут быть эти сайты, но их полная блокировка также невозможна, поскольку они содержат действительно полезный контент. Мы определили те части на каждом из этих веб-сайтов, которые привлекают наше внимание и предоставляют нам неограниченное количество контента в течение всего дня. Это расширение позволяет выборочно скрывать каждую из этих частей и даже блокировать доступ к любому из этих веб-сайтов. Ваши настройки синхронизируются с учетной записью Google, поэтому вы можете использовать это расширение на нескольких компьютерах с одинаковыми настройками. Примечание. Расширение не обращается к истории, и МЫ НЕ отправляем и не храним какую-либо информацию, связанную с просмотром. ————————————————— v.1.9Примечания к выпуску: ☆ Скрыть шорты YouTube v.1.8.5 Примечания к выпуску: ☆ Скрыть истории Facebook v.1.8.3 Примечания к выпуску: ☆ Скрыть лайки и комментарии LinkedIn Примечания к выпуску v.1.8: ☆ Перетаскиваемые вкладки Примечания к выпуску v.Дополнительная информация
Версия: 1.9.1
Обновлено: 9 мая 2023 г.
Размер: 1,57 МБ
Язык: английский
Разработчик
Связаться с разработчиком
900 03
Как установить Яндекс Браузер на Ubuntu 22.04 LTS
Узнайте, как установить Яндекс.Браузер на Ubuntu 22.04 LTS Jammy JellyFish с помощью командного терминала, чтобы начать работу в Интернете.
«Яндекс Браузер» — бесплатная быстрая и визуально привлекательная альтернатива Firefox, Chrome, Opera и Microsoft Edge. Пользователи, которые хотят перейти на Яндекс, могут легко импортировать данные, такие как закладки и настройки, из других популярных браузеров всего за несколько шагов.
Что ж, браузер этой российской поисковой системы основан на элементах Chromium и Opera, поэтому мы можем использовать все дополнения, совместимые с Google Chrome и Opera. В дополнение к управлению закладками и диспетчеру паролей для автоматического входа в систему, программа Windows также предлагает режим инкогнито, который позволяет вам не оставлять следов на вашем ПК во время просмотра.
Создайте бесплатную учетную запись пользователя Яндекса, и так же, как пользователи Google или Firefox, смогут синхронизировать закладки или учетные данные с другими устройствами, на которых работает тот же браузер.
В целях безопасности браузер предлагает встроенную защиту от вирусов «Лаборатории Касперского»; защита от отслеживания, защита от фишинга, блокировка сторонних файлов cookie и предотвращение нежелательного доступа к веб-камерам, микрофонам или USB-устройствам.
Кроме того, Яндекс предлагает жесты мыши, просмотрщик PDF, темный режим и быстрый доступ к Telegram, Skye, Facebook, WhatsApp, YouTube и другим онлайн-сервисам через боковую панель.
Шаги по установке Яндекс браузера на Ubuntu 22.04 LTS
1. Выполните обновление системы
2. Интегрируйте открытый ключ
2. Добавляем репозиторий Яндекса на Ubuntu 22.04
4. Устанавливаем яндекс браузер на Ubuntu 22.04
5. Удалите лишний репозиторий Яндекса
6. Запустите браузер
7. Как обновить или обновить
8. Удалите Яндекс из Ubuntu 22.04.
Действия по установке браузера Яндекс на Ubuntu 22.04 также можно использовать на предыдущих версиях этого Linux, таких как Ubuntu 20.04 и 18.04. Включая Debian 11 и другие подобные дистрибутивы, такие как Linux Mint, POP_OS, Elementary OS и другие…
1. Выполните обновление системы
Мы собираемся использовать диспетчер пакетов APT Ubuntu для установки браузера. Следовательно, разумно запустить команду обновления системы для установки, если доступно какое-либо обновление.
sudo apt update && sudo apt upgrade
2. Интеграция открытого ключа
Теперь системе нужен ключ для проверки пакетов, которые мы собираемся получить, используя добавленный репозиторий Яндекса. Это гарантирует, что системные пакеты находятся в том же состоянии, в котором они были выпущены их разработчиками, и не были изменены кем-либо.
curl -fsSL https://repo.yandex.ru/yandex-browser/YANDEX-BROWSER-KEY.GPG | gpg --dearmor | sudo tee /usr/share/keyrings/yandex.gpg > /dev/null
2. Добавить репозиторий Яндекса на Ubuntu 22.04
В отличие от Firefox, пакеты для установки браузера Яндекс недоступны для установки с использованием системного репозитория по умолчанию Ubuntu 22.04 LTS Linux. Следовательно, мы должны добавить тот, который был предоставлен разработчиками браузера для систем Debian. Вот команда, чтобы сделать это.
Добавить только один из указанных репозиториев. Те, кому нужна стабильная версия браузера, могут выбрать репозиторий Stable, а те, кто хочет протестировать будущие функции браузера Яндекса, могут использовать репозиторий Beta.
Для стабильной версии
echo deb [arch=amd64signed-by=/usr/share/keyrings/yandex.gpg] http://repo.yandex.ru/yandex-browser/deb стабильная основная | sudo tee /etc/apt/sources.list.d/yandex-stable.list
Для бета-версии
echo deb [arch=amd64 signed-by=/usr/share/keyrings/yandex.gpg] http://repo.yandex.ru/yandex-browser/deb beta главная | sudo tee /etc/apt/sources.list.d/yandex-beta.list
После добавления ключа и репозитория один раз запустите команду обновления системы, которая перестраивает кеш индекса пакета APT.
sudo apt update
4. Установите браузер Яндекс на Ubuntu 22.04
После того, как вы добавили репозиторий, мы можем установить браузер Яндекс, используя системный менеджер пакетов APT по умолчанию. Вот команды, которым нужно следовать.
Для стабильной версии:
Те, кто использовал репозиторий Stable, могут с помощью данной команды установить браузер.
sudo apt install yandex-browser-stable
Для бета-версии:
Если вы добавили бета-репозиторий браузера, то получите его, используя указанный синтаксис:
sudo apt install yandex-browser-beta
Яндекс браузер при установке также создаст репозиторий, который нам не нужен, т.к. мы его уже настроили вручную. Так что убери это:
sudo rm /etc/apt/sources.list.d/yandex-browser*.list
6. Запустите браузер
После завершения установки перейдите в панель запуска приложений и найдите браузер. Когда появится его значок, нажмите, чтобы запустить его.
7. Как обновить или обновить
Что ж, всякий раз, когда для браузера доступно какое-либо обновление, то же самое будет отображаться на нем для установки. Однако другим быстрым способом является использование команды обновления системы. Поскольку для его установки мы использовали репозиторий APT и Яндекса, запуск команды обновления системы также установит, если для браузера доступно какое-либо обновление.
sudo apt update && sudo apt upgrade
8. Удалите Яндекс из Ubuntu 22.04
После использования браузера Яндекс в течение некоторого времени и сейчас, если вы считаете, что это бесполезно, удалить браузер также легко. Просто запустите данную команду диспетчера пакетов APT, чтобы полностью удалить ее из вашей системы.
Удалить приложение браузера
Для стабильной версии
sudo apt autoremove yandex-browser-stable
Для бета-версии:
sudo apt autoremove yandex-browser-beta
Чтобы удалить репозиторий и ключ GPG:
Для стабильного репо
sudo rm /etc/apt/source s.