Ускорение Chromium
Ускорить браузер Chromium (Opera, Vivaldi и др.) можно за счет включения возможностей по вынесу вычислений с процессора на видеокарту (хромиум станет работать быстрее).
Заходим в chrome://gpu.
Зеленая надпись "Hardware accelerated" - данная функция использует аппаратное ускорение за счет выноса вычислений на видеокарту, а "Enabled" - программный алгоритм включен.
Заходим в chrome://flags. Здесь производится главная часть настройки.
Внимание на "#ignore-gpu-blacklist".
Далее все опции из этого списка именуются именно так (можно поиском найти эту настройку по названию).
Если в 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 очень специфична для конкретного железа.
#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 - это движок обработки (компиляции) javascript в Chromium (компиляция javascript создает основную нагрузку на процессор при работе браузера).
#v8-cache-strategies-for-cache-storage - можно включить агрессивный кеш V8.
#shared-array-buffer - работа с памятью в javascript.
#enable-simple-cache-backend -> Enabled/Включено - работаем с файлами непосредственно внутри файловой системы, возлагая большую часть работы на операционную систему и уменьшая нагрузку на ввод-вывод с диска (уменьшаем количество переключений контекста, что ускорит работу).
Линукс. Закрываем все открытые копии 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, получится то же самое:
Далее нужно повторно вынести ярлык на рабочий стол.
Как измерить скорость работы браузера
Как понять, какие опции ускоряют работу, а какие замедляют?
Для этого запускается web.basemark.com с различными сочетаниями настроек и сравнивается количество набранных баллов.
В chrome://gpu браузер может показывать, что включено аппаратное ускорение декодирования видео. Но ведь не каждое видео будет декодироваться аппаратно!
Открываем chrome://media-internals/, параллельно запускаем проигрывание видео с Youtube и смотрим, каким кодеком оно декодируется.
Сейчас Google все видео отдает в кодеке VP9 собственной разработки, но на довольно многих старых видеокартах возможно аппаратное декодирование только H.264; расширение h264ify заставит браузер сообщать, что он не поддерживает кодеки VP8 и VP9, что заставит Youtube отдавать видео в H.264.
По умолчанию так:
С включенным h264ify на его стандартных настройках:
Нет единого списка драйверов и видеокарт с поддержкой аппаратного декодирования.
Браузер перестал запускаться
Открываем в файловом менеджере папку ~/.config (~ - это домашняя папка) и папку chromium (для Google Chrome она называется google-chrome, Vivaldi - Vivaldi и т.д.).
В ней хранится профиль. Можно просто переименовать папку, например, в chromium.old, а при следующем запуске chromium создаст ее заново и начнет с чистого листа. В качестве резервной копии рекомендуется до проведения всех манипуляций заархивировать эту папку. Если что-то сломано, а начинать с чистого профиля не хочется, то открываем терминал внутри ~/.config/chromium и выполняем команду: $ grep -inHr "ignore-gpu-blacklist"
Вместо ignore-gpu-blacklist подставляется название опции, которая стала причиной неполадок. В ответ команда grep выдаст путь к файлу и номер строки, где исправляется настройка (часть настроек хранится в SQLite базе данных, для этого нужна программа для работы с SQLite-БД).