Выжимаем все соки из Chromium на Linux
В этой статье рассмотрим, как выжать все соки из Хромиума и максимально ускорить его или другой браузер на его движке (Chromium, Google Chrome, Opera, Vivaldi, Яндекс и др.). За счет включения многих экспериментальных возможностей по вынесу вычислений с процессора на видеокарту и включения использования находящихся в разработке программных алгоритмов. За счет этого наш любимый хромиум станет работать быстрее, может перестать тормозить или моргать экраном.
Поехали!
Как сделать резервную копию всего профиля браузера (настройки, история. закладки и пр.), написано в конце статьи.
Заходим по адресу 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. Теоретически, всякие иные поделия браузеры на движке Сhromium должны их поддерживать, но гарантии нет.
Закрываем все открытые копии 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, вам может потребоваться повторно вынести ярлык на рабочий стол и/или панели.
UPD 10.05.2018.
Здесь ведется полный список флагов для Chromium, который можно прописать непосредственно в Exec в Desktop-файле, чтобы не нужно было их все включать вручную:
chromium-browser --ignore-gpu-blacklist --enable-experimental-canvas-features --enable-accelerated-2d-canvas --canvas-msaa-sample-count=2 --force-display-list-2d-canvas --force-gpu-rasterization --enable-fast-unload --enable-accelerated-vpx-decode=3 --enable-tcp-fastopen --javascript-harmony --enable-checker-imaging --v8-cache-options=code --v8-cache-strategies-for-cache-storage=aggressive --enable-zero-copy --ui-enable-zero-copy --enable-native-gpu-memory-buffers --enable-webgl-image-chromium --enable-accelerated-video --enable-gpu-rasterization
Как измерить скорость работы браузера, понять, какие опции на вашем сочетании железа и видеодрайвера ускоряют работу, а какие замедляют?
Для этого запускайте онлайн бенчмарк 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-БД и поиска по ним. Честно говоря, ни разу не пробовал так делать.

За сим отчаливаю, спасибо за внимание, жду отзывов и вопросов в комментариях.
- linux desktop
- chromium
- google chrome
В браузер Falkon добавлена опция аппаратного ускорения
В Chromium добавляются опции: —enable-oop-rasterization —enable-gpu-rasterization —enable-native-gpu-memory-buffers —use-gl=desktop .

dataman ★★★★
02.03.23 11:42:55 MSK

И 25 лет не прошло, как в браузеры подвезли 2d-ускорение )
i_am_not_ai
( 02.03.23 12:40:31 MSK )

Нужно. Еще бы сделали,чтобы клоудфлейровские проверки проходил нормально,вообще бы лучший браузер стал.
Dog ★★★
( 02.03.23 14:39:51 MSK )

Точняк! У меня идея. Если в ff или chrome есть поддержка аппаратного ускорения, то там должно будет быть условие, что если NVidia, то использовать CUDA, я правильно понимаю? Там я могу посмотреть рабочий пример CUDA-программирования?
xwicked ★★☆
( 02.03.23 15:00:19 MSK )
Ответ на: комментарий от xwicked 02.03.23 15:00:19 MSK

Там я могу посмотреть рабочий пример CUDA-программирования?
Но CUDA не визуализация, а вычисления на стороне GPU.
dataman ★★★★
( 02.03.23 15:16:16 MSK ) автор топика
Ответ на: комментарий от xwicked 02.03.23 15:00:19 MSK

Если в ff или chrome есть поддержка аппаратного ускорения
Video Decode and Presentation API for Unix (VDPAU) — разработанная NVIDIA свободная библиотека и API для переноса части процесса декодирования видео и его постобработки на сторону GPU. NVDECODE/NVENCODE — проприетарные API аппаратного ускорения, используемые в таких поколениях GPU от NVIDIA, как Fermi, Kepler, Maxwell и Pascal.
i_am_not_ai
( 02.03.23 15:37:36 MSK )
Ответ на: комментарий от dataman 02.03.23 15:16:16 MSK

// CUDA runtime #include // helper functions and utilities to work with CUDA #include #include
Пасиб, братан! Я на шаг ближе к цели. Анализируя те примеры, я понял, что там использются их заголовочники — уже мне легче будет в оптимизации своего кроссворда.
xwicked ★★☆
( 02.03.23 15:51:45 MSK )
Ответ на: комментарий от xwicked 02.03.23 15:51:45 MSK

Ещё можно в исходниках Blender’а поискать использование CUDA.
dataman ★★★★
( 02.03.23 16:02:45 MSK ) автор топика
Ответ на: комментарий от xwicked 02.03.23 15:00:19 MSK
При чем здесь CUDA?
hateWin ★★
( 02.03.23 17:23:37 MSK )


Круто. А на Гайке оно будет работать? Кастую X512 . Ну и кто там ещё.
R_He_Po6oT ★★★★
( 02.03.23 17:29:00 MSK )

А адблок нормальный там не завезли?Раз уж следите за Фалконом, может знаете о планах?
R_He_Po6oT ★★★★
( 02.03.23 17:32:35 MSK )
Ответ на: комментарий от R_He_Po6oT 02.03.23 17:32:35 MSK

А адблок нормальный там не завезли?
А что такое «нормальный»?
Подписка на фильтры есть, можно добавлять пользовательские правила. Что ещё нужно?
dataman ★★★★
( 02.03.23 17:46:40 MSK ) автор топика
Ответ на: комментарий от dataman 02.03.23 17:46:40 MSK

Пользовательские правила очень неудобно добавлять. Если бы правой кнопкой на элементе нажать и было предложено несколько вариантов что с этим всем делать, было бы гораздо удобнее. Если бы был счётчик заблокированного с возможностью временно отключить что-то для данной страницы, было бы удобнее. А так, деревянный там адблок.
Если бы адблок был удобным, перешёл бы на этот Фалкон как на основной.
R_He_Po6oT ★★★★
( 02.03.23 17:54:05 MSK )
Ответ на: комментарий от R_He_Po6oT 02.03.23 17:54:05 MSK

Соглашусь с неудобством использования. 🙂
Меня же удивляет другое — Фалькон можно собрать с поддержкой Питона. Но обилия расширений на Питоне что-то не видно.
Видимо, сделав ставку на популярность Питона, разработчики Фалькона чего-то не учли. 🙂
dataman ★★★★
( 02.03.23 18:05:38 MSK ) автор топика
Ответ на: комментарий от R_He_Po6oT 02.03.23 17:29:00 MSK

А на Гайке оно будет работать?
James_Holden ★★★
( 02.03.23 19:02:48 MSK )
Ответ на: комментарий от dataman 02.03.23 18:05:38 MSK

Не учли, что всё это кто-то должен будет писать 🙂
R_He_Po6oT ★★★★
( 02.03.23 19:22:07 MSK )
Ответ на: комментарий от James_Holden 02.03.23 19:02:48 MSK

Это был реактосовский стиль ответа 🙂
R_He_Po6oT ★★★★
( 02.03.23 19:22:53 MSK )
Ответ на: комментарий от R_He_Po6oT 02.03.23 19:22:53 MSK

Так ведь подходит 100% к твоему вопросу.
James_Holden ★★★
( 02.03.23 21:56:44 MSK )
Ответ на: комментарий от R_He_Po6oT 02.03.23 19:22:07 MSK

Писать под браузер на питоне это дичь какая-то, при наличии встроенного движка нормального языка — javascript.
James_Holden ★★★
( 02.03.23 21:57:56 MSK )
Ответ на: комментарий от James_Holden 02.03.23 21:57:56 MSK

На любом языке нужно будет писать плагины. А для браузера с маленькой аудиторией писать некому. :))
R_He_Po6oT ★★★★
( 02.03.23 22:34:16 MSK )
Ответ на: комментарий от R_He_Po6oT 02.03.23 22:34:16 MSK

У этого браузера движок от хрома. Все уже написано до нас. Зачем велосипедить не понятно.
James_Holden ★★★
( 02.03.23 22:58:38 MSK )
Ответ на: комментарий от R_He_Po6oT 02.03.23 17:29:00 MSK

Falkon вроде перешёл на движок от Chrome (Blink), который ещё полноценно не портирован на Haiku и на данный момент постоянно падает. Google весьма наплевательски оносится к портируемости Blink и даже для FreeBSD принимать патчи в апстрим не хочет, а патчи требуются большие.
Пока браузер лучше всех работающий и поддерживающий современный веб на Haiku это Epiphany на WebKit GTK 3.
Тот Falkon что есть использует заброшенную версию WebKit для Qt.
X512 ★★★★★
( 02.03.23 23:10:35 MSK )
Последнее исправление: X512 02.03.23 23:39:11 MSK (всего исправлений: 1)
Ответ на: комментарий от X512 02.03.23 23:10:35 MSK

А гткшники не придумают обблинкиться? Сейчас кто вебкит пишет? Эппл? Или у него уже что-то другое?
R_He_Po6oT ★★★★
( 03.03.23 09:58:18 MSK )

Что с версиями у браузера Falkon? На официальном сайте последняя версия 3.2.0 от 31.01.2022, а порт на FreeBSD имеет версию 22.12.2 от 02.02.2023.
Ускорение и настройка Chromium/Chrome/Яндекс.Браузера/Vivaldi на Linux
В этой статье рассмотрим, как выжать все соки из Хромиума и максимально ускорить его или другой браузер на его движке (Chromium, Google Chrome, Opera, Vivaldi, Яндекс и др.). За счет включения многих экспериментальных возможностей по вынесу вычислений с процессора на видеокарту и включения использования находящихся в разработке программных алгоритмов. За счет этого наш любимый хромиум станет работать быстрее, может перестать тормозить или моргать экраном.
Поехали!
Как сделать резервную копию всего профиля браузера (настройки, история. закладки и пр.), написано в конце статьи.

Заходим по адресу 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. Теоретически, всякие иные поделия браузеры на движке Сhromium должны их поддерживать, но гарантии нет.
Закрываем все открытые копии 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-БД и поиска по ним. Честно говоря, ни разу не пробовал так делать.
За сим отчаливаю, спасибо за внимание, жду отзывов и вопросов в комментариях.
Редактор кода Visual Studio Code. Самый подробный гайд по настройке и установке плагинов для начинающих
Да, спасибо за идею «CSS Navigation» — надо бы реализовать в N++, остальное вроде есть.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
После руссификации трудно понять, о какой команде речь, а горячие клавиши тоже мало о чём говорят, потому что лично я перебиндил под себя чуть ли не всё. В итоге остаётся искать нужное только по смыслу, опираясь на описание.
Пользуюсь VS Code с этого года. Выбрал почти случайно, потому что когда примерно год назад перебирал разные редакторы, он показался более матёрым комбайном. А до этого несколько лет использовал jedit, но у него перестали выходить обновления, нет поддержки scss и stylus, а в создании своих подсветок я не разобрался. Также у него проблемы с pug и вмякими jsx, то есть со всем, что не html и css. И он не умеет подставлять имя переменной после this., если она определена без this, как ключ в объекте. В общем, накопилось это всё, сменил редактор, в итоге 8 ГБ оперативки иногда стало не хватать.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Да, и при редактировании js-файла на 3000 строк, vs code подвисает секунды на 3 при вводе каждого слова.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
У меня такое было из-за авто форматирования. Попробуй отключить его
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Форматирование отключено, задержку видно на попытке вывести подсказки и раскрасить слова.
Хорошо, что такой огромный файл мне требуется открывать раз в полгода. И я таки лучше буду делать это через jedit.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Не увидел в описании. А она может файлы на сервер заливать по FTP/SFTP?
Например, как это делает Net Beans.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Да! Есть плагины. Сделаю тесты и допишу, спасибо!
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
А есть ли какой-нибудь аддон, который позволяет подсказку выбирать не листанием стрелочками, а нажатием цифры с номером строки этой подсказки? Чтобы ctrl+пробел, 8, и всё. Очень надоедает листать.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Это Вам спасибо! Я как-то не разглядел ее с первого знакомства. Теперь думаю на нее перейти. Net Beans у меня уж больно неповоротливый.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Плагин ftp-simple, работает хорошо!
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
liximomo.sftp очень удобен
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Плагины же обычно устанавливаются применительно к тому, чем вы занимаетесь. Если питоном — одни, если вебразработкой — другие. Имеет смысл в начале статьи явно указать, на кого расчитано.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Вот ещё годный плагин: Visual Studio Code Remote — SSH. Идёт в составе пакета: Visual Studio Code Remote Development.
Позволяет локально работать с файлами на сервере.
Чтобы подключиться, надо настроить в конфиге ssh подключение к удалённому хосту.
При первом подключении к хосту на нём создаётся серверная реплика Visual Studio Code, через которую потом и работает сам Visual Studio Code на локальном компе.
После установки данного плагина расширения для Visual Studio Code можно устанавливать как локально, так и отдельно для удалённого хоста. Очень удобно — для каждого хоста свой набор расширений.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Отличная статья, нашел пару полезных плагинов для себя.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Запуск на слабой машине
Когда программа установлена, можем ее запустить. Но запустится она не на каждом компьютере. Дело в том, что программа достаточно ресурсоемкая. Поэтому на слабой машине можно получить такой результат: вместо интерфейса программы черный экран, а процессор потеет на все 100%. Но выход есть — необходимо открыть контекстное меню ярлыка программы и дописать в пути к файлу вот такой флаг: —disable-gpu
Это наверное такой анекдот да?
Закатить раскатить
Как причина проблемы так и способ ее решения никакого отношения к слабым машинам не имеет.
Тем более не вполне понятно как автор, путем отрезания от слабой машины заметной части ее мощностей, вдруг решает проблему.
Если Ваша проблема решается при помощи disable-gpu то это говорит только о том, что по каким то причинам, webkit не может корректно взаимодействовать с вашей видео картой. Что может случаться совершенно на любой машине.
Соответственно, первое из решений, это не отключение функционала, опирающегося на плотную эксплуатацию вашей видео карты, а поиск причин почему это не происходит корректно. Иными словами, прежде чем переходить к действиям описанным ниже, следует убедиться что драйвера видеокарты работают корректно. Нередко простое обновление драйверов решает все проблемы.
Убедились что проблем с драйверами нет
Итого перед нами vscode который по каким то причинам не может запуститься с использованием аппаратного ускорения графики. При этом disable-gpu проблему решает и приложение запускается.
Закатить раскатить
В этом случае вам следует обратиться к целому зоопарку опций запуска вебкит бейсид приложений, которые позволяют менять почти все, кроме разве что ошибок в днк.
Перебираем опции командной строки
Вот тут https://peter.sh/experiments/chromium-command-line-switches/ вы найдете актуальный список ключей командной строки. Вас в первую очередь интерисуюет все что связано со словами, gpu compositing, threading, accelerated
Попробуйте начать со следующих опций, при этом пробовать варианты их как со словом disabled так и со словом enabled:
- —ignore-gpu-blocklist
- —enable-zero-copy
- —disable-gpu-vsync
- —disable-gpu-driver-bug-workarounds
- —disable-gpu-driver-workarounds
- —ui-enable-zero-copy
- —enable-gpu-rasterization
- —enable-dom-distiller
- —enable-hardware-overlays
- —enable-gpu-memory-buffer-compositor-resource
- —use-gl=
- —force-system-compositor-mode
- —disable-low-res-tiling
- —enable-native-gpu-memory-buffers
- —enable-threaded-compositing
- —use-angle=gl
Владельцам гибридной видео графики
Закатить раскатить
Если ваша машина использует гибридную графику, что то вроде оптимуса, или других забавных проявлений инженерного гения от нвидиа, попробуйте опиции с переключением на конкретный GPU. Однажды был случай, когда интегрированная Intel с 64г на борту оказалась на порядок быстрее дискретной нвидиа.
Практически всегда можно найти тот набор магических комбинаций, который не только решат проблему, но и в случае если ее не было, могу сильно повлиять как на производительность так и на потребление памяти в купе с шумящими кулерами.
Несколько решений из собственного опыта
Закатить раскатить
Например неожиданно подлагивающий на пол секунды интерфейс решался при помощи
—disable-gpu-vsync
опции —disable-gpu-driver-workarounds и —disable-gpu-driver-bug-workarounds, которые казалось бы должны помогать на самом деле приводили к проседанию производительности
а шаманство со значениями параметров —use-angle= и —use-gl= приводило к кардинальному изменения отзывчивости.
Кроме этого, можно сэкономить небольшое количество ресурсов отключая ненужные Вам апи, или функционал чем то вроде:
—disable-login-animations —no-default-browser-check —no-pings —disable-speech-api
Все вышеописанные шаманские рекомендации справедливы для любой ситуации связанной с вебкит бейсид приложениями. То есть и типичный гугло хром подобными кастрациями можно заставить шевелиться побойчее.