Перейти к содержимому

Disable gpu rasterization что это

  • автор:

Выжимаем все соки из 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 .

Menulibre, Chromium

Kmenuedit, Chromium

Тру-униксоиды могут скопировать /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 .

Menulibre, Chromium
Kmenuedit, Chromium
Тру-униксоиды могут скопировать /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

Все вышеописанные шаманские рекомендации справедливы для любой ситуации связанной с вебкит бейсид приложениями. То есть и типичный гугло хром подобными кастрациями можно заставить шевелиться побойчее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *