Поехали!
Как сделать резервную копию всего профиля браузера (настройки, история. закладки и пр.), написано в конце статьи.
Заходим по адресу
chrome://gpu
(да, именно так наберите в адресной строке или скопипастьте)!Как видите, у меня везде зеленая надпись «Hardware accelerated», что говорит, что данная функция использует аппаратное ускорение за счет выноса вычислений на видеокарту, а «Enabled» говорит, что программный алгоритм включен.
Теперь зайдите в
chrome://flags
.Здесь и будем производить большую часть настройки.На скриншоте красным прямоугольников выделил
#ignore-gpu-blacklist
. Дальше все опции из этого списка буду именовать именно вот так. Можно нажать Ctrl+F и найти настройку по ее скопипащенному названию.Теперь у нас открыты и
chrome://gpu
, и chrome://flags
. Смотрим, какие параметры есть в chrome://gpu
, и, если параметр не зеленый, а желтый или красный, в chrome://flags
изменяем соответствующую настройку. Осторожно, некоторые настройки могут сделать работу браузера нестабильной, зависит от железа.Canvas — аппаратное ускорение отрисовки канваса
В
chrome://flags
это #ignore-gpu-blacklist
Отключается включением опции
#disable-accelerated-2d-canvas
CheckerImaging — суть в том, что растеризация картинки убрана из зависимости от растеризации остальной области, с которой связана картинка, что позволяет отрисовывать веб-страницу, не дожидаясь окончания обработки картинки, как-то так. Говорят, сайт Юлмарта начинает отрисовываться намного быстрее.
Это параметр командной строки
--enable-features="CheckerImaging"
, подробнее ниже.Flash, Flash Stage3D, Flash Stage3D, Flash Stage3D Baseline profile — аппаратное ускорение декодирования флеш-контента
Тоже
#ignore-gpu-blacklist
Compositing — аппаратное ускорение наложения слоев
Скорее всего, тоже
#ignore-gpu-blacklist
, я не встречал, чтобы это было не работало (было не зеленым) «из коробки».Multiple Raster Threads — распараллеливание на несколько потоков процесса растеризации векторных элементов веб-страницы
#enable-gpu-rasterization
—> Force-enabled for all layers / Принудительно для всех слоев.Включение этой опции также может помочь, если у вас моргает экран при просмотре сайтов, в т.ч. вконтакте, и видео.
Native GpuMemoryBuffers — исключается дополнительный буфер при копировании элементов между CPU и GPU, по умолчанию выключено, почему — подробно написано по ссылке.
Это параметр командной строки
--enable-native-gpu-memory-buffers
, подробнее ниже.Rasterization — применение видеокарты для растеризации
#enable-gpu-rasterization
Video Decode — аппаратное ускорение декодирования видео (при просмотре видео декодируется)
Video Encode — аналогично кодирование
Входит в
#ignore-gpu-blacklist
WebGL, WebGL2 — поддержка рендеринга на видеокарте набора инструкций OpenGL, входящих в стандарт WebGL; автоматически выключается, если драйвер видеокарты их не поддерживает.
Входит в
#ignore-gpu-blacklist
Еще есть опция
#enable-zero-copy
, выше приведена ссылка на статью инженеров Intel, которые разрабатывали эту функцию (судя по скриншотам и вступлению в статье, разработка происходит на Ubuntu, но коммерчески выгодна в первую очередь из-за Chrome OS). Есть подозрение, что ее работа будет очень специфична для конкретного железа.#enable-tcp-fast-open
— TCP Fast Open, ускоряет работу сетевого стека, фича ядра Linux, на Windows и MacOS недоступно, виндузятниги #expensive-background-timer-throttling
— ограничивает максимальную нагрузку на процессор фоновыми вкладками (т.е. не та вкладка, с которой вы сейчас работаете) до максимум 1%. Далеко не всегда уместно. Вдруг у вас в фоновой вкладке запущена торговля на бирже.#v8-cache-options
— например, в режиме «Cache V8 compiler data» V8 будет лучше кешировать javascript и не компилировать их заново. Опять же. на некоторых сложных веб-приложениях в теории может вызывать проблемы. V8 — это движок обработки ( в т.ч. компиляции) яваскрипта в Chromium, а компиляция javascript создает основную нагрузку на процессор при работе браузера.#v8-cache-strategies-for-cache-storage
— можно включить агрессивный кеш V8, речь о кеше в предыдущем абзаце, возможное последствия те же.#shared-array-buffer
— экспериментальные функции работы с памятью в javascript, подробное объяснение здесь.#enable-simple-cache-backend
—> Enabled/Включено — вместо реализации своего подобия файловой системы в блочном файле для кеша, работаем с файлами непосредственно внутри файловой системы, возлагая большую часть работы на операционную систему и уменьшая нагрузку на ввод-вывод с диска, в т.ч. уменьшаем количество переключений контекста, что должно ускорить работу.Теперь про опции командной строки Chromium и Google Chrome. Теоретически, всякие иные
Закрываем все открытые копии Chromium, открываем терминал и выполняем вот такую команду:
$ chromium-browser --enable-native-gpu-memory-buffers --enable-features="CheckerImaging"
В
chrome://gpu
видим, как стали зелеными пункты CheckerImaging и Native GpuMemoryBuffers (либо браузер вообще не запустился :) ) Но ведь каждый раз запускать браузер через терминал неудобно, поэтому открываем графический редактор desktop-файлов и в нем дописываем в команду запуска браузера нужные нам параметры (обратите внимание, что на конце есть %U
, оно заменяется на ссылку или путь к файлу, который нужно открыть, так что его не нужно удалять. В KDE это kmenuedit
(вызов либо через терминал командой kmenuedit
, либо подвести курсор к кнопке вызова меню приложений и нажать на правую кнопку мыши 1 раз, затем левой 1 раз нажать на «Редактор меню» в появившемся списке), на остальных DE (XFCE, GNOME, Budgie, LXDE, LXQt и др.) это menulibre
.Тру-униксоиды могут скопировать
/usr/share/applications/chromium-browser.desktop
в ~/.local/share/applications/chromium-browser.desktop
и отредактировать параметр Exec, получится то же самое:В зависимости от DE, вам может потребоваться повторно вынести ярлык на рабочий стол и/или панели.
Как измерить скорость работы браузера, понять, какие опции на вашем сочетании железа и видеодрайвера ускоряют работу, а какие замедляют?
Для этого запускайте онлайн бенчмарк web.basemark.com с различными сочетаниями настроек и сравнивайте количество набранных
В
chrome://gpu
браузер может мамой клясться, что включено аппаратное ускорение декодирования видео. Но ведь не каждое видео будет декодироваться аппаратно!Открываем
chrome://media-internals/
, параллельно запускаем проигрывание какого-нибудь видео с Youtube и смотрим, каким кодеком оно декодируется.Сейчас Google все видео отдает в кодеке VP9 собственной разработки, но на довольно многих старых видеокартах возможно аппаратное декодирование только H.264; расширение h264ify заставит браузер сообщать, что он не поддерживает кодеки VP8 и VP9, что заставит Youtube отдавать видео в H.264. См. youtube.com/html5
По умолчанию так:
С включенным h264ify на его стандартных настройках:
Вообще нет единого нормального списка, какие драйверы и на каких видеокартах поддерживают аппаратное декодирование, но вот Chromium 62 появится полноценная работа VA-API (API для аппаратного ускорения кодирования и декодирования видео), которая была и раньше, но только на ChromeOS, а, например, здесь, Хромиум собирали и собирают с патчем, который включает это и на Линуксе. Для работы рекомендуется свежая версия libva; если у вас, к примеру, Ubuntu 16.04, то можно обновить весь графический стек отсюда, что рекомендуется пользователям современных и не очень видеокарт Intel и AMD, т.к. в наши дни опенсорсный графический стек развивается очень быстро, а мы в статье задействовали множество функций работы с видеокартой. Разработчики Ubuntu 17.10 работали над улучшением работы VA-API из коробки. Вообще, с проигрыванием видео на Линуксе никогда не встречал проблем, все хорошо работает из коробки. Для Firefox было дополнение, которое позволяло ролик с Youtube проигрывать во внешнем плеере mpv, что на очень старых машинах могло существенно снижать нагрузку на процессор.
— Памагите!!! Браузер перестал запускаться!!!
— Такое бывает очень редко, но все же иногда случается, когда настройки работы с видеокартой выкручиваются так, что у браузера не получается с ней работать. Открываем в файловом менеджере папку
~/.config
(~ — это ваша домашняя папка) и находим папку chromium (для Google Chrome она называется google-chrome, Vivaldi — Vivaldi и т.д.). В ней хранится наш профиль. Можно просто переименовать папку, например, в chromium.old, а при следующем запуске chromium создаст ее заново и начнет с чистого листа. В качестве резервной копии (бекапа) рекомендую до проведения всех манипуляций заархивировать эту папку (и хранить, как зеницу ока). Если вы что-то поломали, а начинать с чистого профиля не хочется, то попробуйте открыть терминал внутри
~/.config/chromium
и выполнить команду:$ grep -inHr "ignore-gpu-blacklist"
где вместо ignore-gpu-blacklist подставьте название опции, которая, как вы думаете, с тала причиной неполадок. В ответ команда grep выдаст путь к файлу и номер строки, где есть шанс поправить настройку. Возможно, часть настроек хранится в SQLite базе данных, и тогда потребуется какая-нибудь программа для работы с SQLite-БД и поиска по ним. Честно говоря, ни разу не пробовал так делать.
За сим отчаливаю, спасибо за внимание, жду отзывов и вопросов в комментариях.
Комментарии (23)
Airat_Halitov
04.10.2017 03:46Делал это раньше, находил подобные инструкции в интернете. Но, как показала практика (через несколько месяцев использования в «быстром» режиме), ноут стал больше нагреваться, а кулер чаще запускаться (а меня напрягает этот звук, я люблю тишину). Иногда он вообще работал без остановки, я уже было задумался о подставке с доп.охлаждением, плюс чистил ноут от пыли и заменял термопасту (хотя там у меня всегда всё чисто).
А если ноут будет работать от батареи, то она сядет гораздо быстрее. Нужно будет отключать аппаратное ускорение вручную.
В итоге просто вырубил его (аппаратное ускорение) сейчас и все настройки вchrome://flags/
поставил по умолчанию, и всё норм.
Но в любом случае можете протестировать. Всё зависит о того, для каких задач вы используете свой браузер. Оперативно посмотреть видос на youtube можно и на стоковых настройках.
P.S. Махинации с файлом/usr/share/applications/chromium-browser.desktop
нужно будет проводить каждый раз после обновления браузера (у меня Chromium на Ubuntu)specblog Автор
04.10.2017 03:48Не нужно их проводить каждый раз. Копия файла делается в домашнем каталоге, она приоритетнее файла вне /home, входящего в пакет. Аппаратное ускорение в большинстве случаев экономит батарею. У вас, мне кажется, Windows, а не Линукс, и ноутбук с дискретной видеокартой, судя по описанным проблемам с батареей, я прав?
Airat_Halitov
04.10.2017 15:34Да, потом уже заметил, что ошибся по поводу файла, т.к. я не копировал его в локальную директорию. Но коммент уже ушел на модерацию. Ваш вариант будет работать.
Как это вам может казаться, что у меня винда, если у меня Ubuntu Linux 16.04 (я написал об этом выше)? :) А видеокарта действительно дискретная: GeForce GT 635M. Драйвер nvidia версии 375.66 (может пригодится).
Раньше на win10 у меня батарея держала примерно 2-3 часа, а как на Ubuntu Linux перешел в качестве домашней ОС (почти год назад), батарея держит меньше часа. Ставил какую-то утилиту для энергосбережения, но чет не помогло (пока забил на этот вопрос). Надо будет найти решение этой проблемы.
А по поводу того, что вы говорите, что аппаратное ускорение в большинстве случаев экономит батарею — тут я сильно сомневаюсь, т.к. отдельная видеокарта в принципе потребляет больше (это в добавок к CPU). И что за такое «большинство случаев» и как в него попасть. Может вы имеете в виду встроенную видеокарту?specblog Автор
04.10.2017 18:14Как это вам может казаться, что у меня винда
А, может, на винде автоматически включается дискретная карта при высокой (по мнению драйвера) нагрузке на встроенную, что вызывает высокое потребление батареи. Из комментария не однозначно следует, что проблема у вас прям на текущей системе.
Вам нужно в первую очередь не утилиту для энергосбережения ставить, а в открыть nvidia-settings и переключить PRIME Profile на интегрированную видеокарту Intel. Дискретную включать только при надобности (или настроить bumblebee). Сейчас у вас наверняка дискретная видеокарта работает 100% времени, когда как в Windows Nvidia Optimus пытается ее то включать, то выключать автоматически. А уже после перехода на интегрированную Intel пробуйте laptop-mode-tools,powertop --auto-tune
. Если у вас процессор Intel и не самый старый, то часть описанных настроек браузера могут дать эффект. Про экономию батареи я говорил для случая интегрированной видеокарты, плохо выразился.Airat_Halitov
04.10.2017 22:01Автоматическое переключение между видеокартами похоже на правду)
По поводу текущей конфигурации и энергосбережения:
Процессор: Intel® Core(TM) i5-3317U
Встроенная видеокарта Intel® HD Graphics 4000
У меня стоял до этого пакет tlp (и tlp-rdw)
Сделал, как вы написали, т.е. переключил PRIME Profile. Установил laptop-mode-tools (tlp удалил, т.к. они взаимоисключающие).
sudo powertop --auto-tune выдал:
Скрытый текстmodprobe cpufreq_stats failedЗагружены 29 предварительные замеры
Невозможно загрузить из файла /var/cache/powertop/saved_parameters.powertop
Файл будет загружен после выполнения минимального количества измерений (только с батареей)
RAPL device for cpu 0
RAPL Using PowerCap Sysfs : Domain Mask d
RAPL device for cpu 0
RAPL Using PowerCap Sysfs : Domain Mask d
RAPL device for cpu 0
RAPL Using PowerCap Sysfs : Domain Mask d
Devfreq not enabled
Невозможно загрузить из файла /var/cache/powertop/saved_parameters.powertop
Файл будет загружен после выполнения минимального количества измерений (только с батареей)
To show power estimates do 256 measurement(s) connected to battery only
Завершение PowerTOPspecblog Автор
04.10.2017 22:08В powertop можно смотреть, какая программа как часто дергает процессор. Если правильно помню, compiz это делает чаще других WM.
Airat_Halitov
04.10.2017 22:10Продолжение...
Сейчас я включил аппаратное ускорение, и зарядка упала с 30% сразу на 20%, а потом и до 0%, т.е. ноут вырубился :)
Пока не знаю, с чем связано. Видимо режим с аппаратным ускорением у меня «прожорливее»
zbestr
04.10.2017 03:46Спасибо! Как раз хотел найти готовый мануал на эту тему и погонять, да всё времени не было заняться.
Чисто субъективно почему-то кажется что шрифты стали приятнее. Глаз прям сам за это зацепился.
Ну и мониторинг показывает что процессору стало жить проще и прохладней.
mrobespierre
04.10.2017 06:40если инет быстрый, а папка профиля не на ssd, то имеет смысл рассмотреть отключение диского кеша вообще (--disk-cache-size=1 --media-cache-size=1)
domix32
04.10.2017 11:58Галочка аппаратного ускорения в настройках хромиума делала какой-то странный трюк с рендеренгом изображений на канвасе (Ubuntu 16.04.3 LTS).
Laney1
04.10.2017 12:08но вот Chromium 62 появится полноценная работа VA-API
если я правильно понял то что написано по ссылке, то там код еще не смерджен, так как не прошел ревью
Star_Hobbit
04.10.2017 18:09ещё пользуюсь --process-per-site, меньше памяти кушает за счёт того, что сайты с 1 ip обрабатываются в 1 процессе (на веб-дев машине актуально)
SeeOleg
04.10.2017 18:09А что типичное под windows можно сделать?
Есть видюха, и она простаивает, как бы бы ее мощность пустить на работу с браузером.
UNIm95
04.10.2017 18:09Возник вопрос(в реале нужна помощь с опциями)
Есть 2 компа: Ноут на CPU, GPU Intel и десктоп CPU Intel, GPU AMD R7 250X(дискретка к которой подключены мониторы) GPU Intel(интегрирована, ничего не подключено).
При воспроизведении youtube в местах где в ролике нет звука десктоп начинает фризить кадры. То есть видео замирает, после чего появляется звук со следующим не тихим моментом, видео или ускоренно перематывается на момент со звуком или сразу прыгает на этот участок.
Причем профиль Chromium перенесён из десктопа в ноут.
Думаю что это как-то связано с двумя видеокартами на десктопе.
Есть какие-либо опции привязывающие ускорение к дискретной видюхе?
OS: Ubuntu 16.04
Драйвера: На обоих машинах открытые.specblog Автор
04.10.2017 18:16Покажите вывод
glxinfo | grep OpenGL
uname -a
UNIm95
04.10.2017 20:34Ноут
unim95@laptop:~$ glxinfo |grep OpenGL OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Kabylake GT2 OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.0.7 OpenGL core profile shading language version string: 4.50 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 3.0 Mesa 17.0.7 OpenGL shading language version string: 1.30 OpenGL context flags: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.2 Mesa 17.0.7 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 OpenGL ES profile extensions: unim95@laptop:~$ uname -a Linux laptop 4.11.0-14-generic #20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Десктоп
unim95@desktop:~$ glxinfo |grep OpenGL OpenGL vendor string: X.Org OpenGL renderer string: AMD OLAND (DRM 2.43.0 / 4.4.0-96-generic, LLVM 5.0.0) OpenGL core profile version string: 4.2 (Core Profile) Mesa 17.3.0-devel OpenGL core profile shading language version string: 4.20 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 3.0 Mesa 17.3.0-devel OpenGL shading language version string: 1.30 OpenGL context flags: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.0 Mesa 17.3.0-devel OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00 OpenGL ES profile extensions: unim95@desktop:~$ uname -a Linux desktop 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:59:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
specblog Автор
04.10.2017 22:00Не должно быть связано с двумя видеокартами, система работает полностью на AMD. Попробуйте ядро 4.11 (
sudo apt install linux-generic-hwe-16.04-edge) или более новое из http://kernel.ubuntu.com/~kernel-ppa/mainline/
Также попробуйте вот эту сборку Хромиума с патчем для VA-API: https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-dev
Sly_tom_cat
05.10.2017 08:59Спасибо, зазеленил себе страничку chrome://gpu. На работе не сильно заметно (но там машина мощная), а вот дома, на нетбуке с AMD E450 Chromium стал заметно шустрее работать.
gentux
В chromium тоже можно запускать ролики youtube через mpv watch with mpv + инструкция по запуску сервиса для разных ОС
Laney1
я запускаю просмотр просто из консоли.
mpv --ytdl-format=bestvideo+bestaudio ...
а список форматов можно посмотреть в
youtube-dl