Сообщество - GNU/Linux

GNU/Linux

1 206 постов 15 626 подписчиков

Популярные теги в сообществе:

60

Хватит кормить Chrome! Как я подружил браузер с ноутбуком 2007 года

Подробное руководство по ускорению любимого браузера подручными средствами. В помощь домохозяюшкам, студентам и высшему руководству — всем у кого нет под рукой топового железа с 64Гб памяти для работы в современном интернете.

В качестве демонстрации. FreeBSD и ноутбук 2007 года, но ниже будет и про ваши любимые Windows c Linux

❯ Хром

Браузер Chrome, созданный и разрабатываемый корпорацией Google давно стал главным инструментом для большинства пользователей компьютерной техники:

в вашем телефоне, планшете, телевизоре, ноутбуке и стационарном компьютере в подавляющем большинстве случаев будет установлен именно этот браузер, либо что-то на его основе.

Исключения редки, это продукция Apple со своим собственным браузером Safari, медленно умирающий Firefox и совсем уж сказочная альтернативщина.

Два вечных конкурента в виде браузеров Opera и Internet Explorer сдались в попытке угнаться за прогрессом и ныне используют под капотом движок от Chrome.

Так что Google это мировой монополист в области браузеростроения, Chrome — его самый популярный продукт и фактически главное приложение для большинства современных пользователей.

Даже эта статья создавалась с помощью браузера Chrome:

❯ Скорость

Конечно высокооплачиваемые разработчики самого популярного браузера на планете, щедро финансируемые «корпорацией добра» — не полные идиоты и разбираются в вопросах производительности собственного продукта гораздо лучше автора.

Но только проблемы производительности на дешевом, устаревшем и тем более неподдерживаемом оборудовании сотрудников Google... мягко говоря не очень волнуют.

Поэтому в очередной раз простому пользователю, не желающему продавать почку ради современного компьютера, придется заботиться о себе самостоятельно. Чем мы сейчас и займемся.

Применимость

Описываемые ниже инструкции — для десктопной версии браузера Chrome и с учетом специфики трех разных операционных систем: Windows, Linux и FreeBSD.

Мобильная версия браузера довольно сильно отличается, но также поддается подобной настройке. Однако чтобы не раздувать статью — про тюнинг мобильной версии расскажу в следующий раз.

Замечу также, что эта статья — далеко не самый возможный максимум оптимизации и если Господь наградил вас знанием языка С++, дав в руки компилятор, то сотворить с браузером можно гораздо больше.

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

Производительность

Я использую браузер Chrome на ноутбуках с момента его появления и часто работаю «в поле» — от батареи и без подключения к розетке. Помимо браузера на машине постоянно присутствуют еще несколько тяжелых приложений — в первую очередь среды разработки и разнообразные редакторы.

Все это в итоге формирует следующий набор требований:

  1. браузер не должен нападать на человека забирать на себя все доступные ресурсы;

  2. браузер не должен «сжирать» батарею ноутбука;

  3. браузер должен продолжать работать с современными сайтами, сохраняя отзывчивость интерфейса.

Время «холодного запуска» и скорость отрисовки страниц при таких вводных разумеется могут пострадать, но будут оставаться в пределах разумного.

Версии и названия

Чтобы не было путаницы, стоит сразу прояснить ряд нюансов с названиями продуктов и используемыми терминами.

Официально браузер от Google называется «Chrome» и поставляется (даже для Linux) в виде готовой сборки с инсталлятором, т.е. это закрытый коммерческий продукт, хотя и бесплатный для пользователя.

Именно эта версия доступна для скачивания с официального сайта и имеет максимальную интеграцию с сервисами и другими продуктами Google.

Открытая часть браузера Chrome называется «Chromium» и с точки зрения обычного пользователя никак не поставляется, поскольку Chromium предназначен в первую очередь для технических специалистов, участвующих в процессе разработки и тестирования.

Именно Chromium а не Chrome чаще всего установлен по-умолчанию в различных дистрибутивах Linux, в виде сборки от ментейнеров дистрибутива.

Наконец существует проект «Ungoogled Chromium», авторы которого постарались удалить из Chromium абсолютно все интеграции с сервисами Google и все закрытые инструменты сборки.

Ungoogled Chromium за последние годы набрал популярность, поэтому активно используется в BSD-системах и дистрибутивах Linux, ориентированных на безопасность.

Поскольку использование сервисов Google в наше непростое время может приводить к непредсказуемым проблемам и сбоям подключения, я буду использовать для всех описываемых оптимизаций Ungoogled Chromium либо просто Chromium, но не официальный Google Chrome.

Тем не менее для простоты повествования, в статье используется термин «Chrome» в качестве обозначения браузера, поскольку описываемые методы оптимизации полностью совпадают и частично применимы и к другим браузерам на основе Chromium.

Тестовая среда

Для статьи использовались современные 64-битные сборки браузера, с версиями начиная с 147 и выше:

147.0.7727.101 (Official Build) (64-bit)

Ungoogled Chromium имеет свою собственную нумерацию версий, отличную от оригинальной, для этой статьи использовались версии 137 и выше:

Под различными операционными системами использовались разные версии браузера, но во всех случаях — самые последние из доступных на момент написания статьи. Замечу также, что описанные оптимизации постоянно используются на всех моих ноутбуках, как мощных и современных, так и откровенно.. винтажных.

Поскольку разницу лучше всего видно на устаревшем оборудовании, в качестве тестовой среды будут использованы два настоящих «боевых пенсионера»:

<a href="https://specspro.net/laptops/6879-lenovo-ideapad-z580-2151/" target="_blank" rel="nofollow noopener">Lenovo Z580</a>, 2013 года

Lenovo Z580, 2013 года

<a href="https://gadgetaz.com/Laptop/ASUS_F3Ke--76" target="_blank" rel="nofollow noopener">ASUS F3Ke</a>, 2007 год

ASUS F3Ke, 2007 год

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

❯ Оптимизация

Поскольку целевая аудитория статьи — обычные пользователи, не владеющие с пеленок компилятором и отладчиком, ограничусь тремя вариантами оптимизации браузера, доступными без залезания непосредственно в код:

хитрые настройки, хитрые плагины и хитрое окружение.

Все ради того чтобы крутить ленту каких-нибудь Reddit/LinkedIn без зависания браузера и 100% загрузки процессора.

Так выглядит работа браузера со всеми оптимизациями на Ubuntu Linux и ноутбуке 2012 года

❯ Chrome и Linux

Так исторически сложилось, что я использую много разных Linux-дистрибутивов в своей непростой деятельности:

Debian, Ubuntu, Manjaro, Mageia, Calculate — только то что установлено на железе, без виртуализации.

Сразу уточню, что Calculate Linux (на базе Gentoo) использует OpenRC вместо systemd, поэтому трюк с systemd-run тут не используется, но все остальные инструкции отлично работают на всем этом зоопарке и по своей сути применимы для любого окружения на базе Linux, везде где есть браузер Chrome.

Начнем со скрипта запуска браузера, в котором специальными параметрами включаются или отключаются разные хитрые опции, а также используется специальное окружение:

#!/bin/bash

systemd-run --user --slice=chromium.slice chromium \
--enable-features=VaapiVideoDecoder,VaapiVideoEncoder \
--enable-gpu-rasterization \
--disable-gpu-compositing \
--enable-zero-copy \
--disable-background-networking \
--disable-client-side-phishing-detection \
--disable-prompt-on-repost \
--disable-sync \
--metrics-recording-only \
--no-first-run \
--safebrowsing-disable-auto-update \
--ignore-gpu-blocklist \
--renderer-process-limit=4 \
--disable-smooth-scrolling \
--wm-window-animations-disabled \
--animation-duration-scale=0 \
--disable-spell-checking \
--disable-features=WhatIsNewPage,Promotions,LensOverlay \
--enable-unsafe-swiftshader "$@"

Сохраняете текст выше в какой-нибудь /opt/own/bin/chrom, выставляете бит запуска:

chmod +x /opt/own/bin/chrom

И используете этот скрипт для первого запуска браузера.

Стоит напомнить, что символ \ отвечает за перенос строк, т.е. для программы весь набор параметров выше это одна длинная строка.

Если при копировании текста что‑то сломается — просто удалите все \ и сведите все в одну длинную строку — так тоже запустится.

Переназначать обработку всех HTML-страниц в рабочем окружении на этот скрипт не стоит, поскольку процессы браузера Chrome умеют общаться между собой и пока есть хоть один работающий процесс — его настройки будут использоваться для запуска новых копий.

Теперь рассказываю страшную сказку про «прожорливый» Chrome и пропавшую память, точнее про эту интересную строку:

systemd-run --user --slice=chromium.slice chromium

Дело в том, что у браузера Chrome есть дурная привычка считать весь компьютер своей собственностью и захватывать максимум доступных ресурсов — всю свободную память и все доступные процессоры и ядра.

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

Но стоит лишь немного просесть по мощности используемого оборудования или доступным ресурсам для более прожорливых программ (привет Davinci Resolve) и любимый браузер от «корпорации добра» немедленно показывает звериный оскал свое истинное лицо.

В случае ноутбука (тем более мощного) немедленно проявляется еще один дурной эффект:

скачки бесконтрольной нагрузки, создаваемой браузером очень быстро разряжают батарею.

Так что становится жизненно необходимым сажать браузер на ресурсную диету с помощью systemd и функционала cgroups.

Делается это в современных Linux-дистрибутивах довольно просто, для начала создаем файл ~/.config/systemd/user/chromium.slice со следующим содержимым:

[Slice] MemoryAccounting=yes MemoryHigh=1G MemoryMax=1.5G MemorySwapMax=3000M CPUAccounting=true CPUQuota=70%

Помимо очевидных лимитов на объем используемой памяти (MemoryHigh и MemoryMax), тут еще задается квота на загрузку процессора (CPUQuota), что не дает поднять ее выше заданного лимита — 100% загрузку CPU от процессов Chrome вы больше не увидите.

Теперь самое важное:

все указанные лимиты применяются ко всем дочерним процессам, которые запускает Chrome во время работы.

По сути этим создается специально ограниченный по ресурсам контейнер, внутри которого запускается браузер.

Ну и сам запуск с помощью черной магии systemd-run и указания слайса:

systemd-run --user --slice=chromium.slice chromium

Аналогичным образом можно ограничивать по ресурсам любые другие «жирные» приложения, например Telegram, который в последних версиях повадился генерировать 100% загрузку процессора по любому поводу.

Замечу, что сей хитрый трюк работает и с приложениями, работающими внутри AppImage или snapd-пакетов, так что с его помощью замечательно урезаются аппетиты версий Chrome/Chromium в Ubuntu/Manjaro, управляемые snapd.

Отключение анимации в действии

Отключение анимации в действии

❯ Отключение анимации

Существует одно интересное расширение для Chrome, позволяющее отключать анимированные картинки на всех страницах:

вместо мигающей хтони анимации будет отображаться один статичный кадр.

Нетрудно догадаться, что этим сильно снижается нагрузка на CPU/GPU (особенно в случае устаревшего оборудования), с чего происходит серьезная экономия заряда батареи.

Так что очень рекомендую к использованию.

Ungoogled Chromium и установка расширений

К сожалению для установки расширений из официального магазина для «левого» Ungoogled Chromium необходимо специальное расширение, без которого вас обрадуют ошибкой:

CRX_REQUIRED_PROOF_MISSING

А кнопка установки в интерфейсе магазина окажется скрытой.

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

Теперь переходим к самому интересному — к параметрам запуска.

❯ Параметры Chrome

У браузера Chrome есть огромное количество разнообразных параметров запуска, как документированных так и не очень. Часть из них дублируется во внутреннем служебном интерфейсе chrome://flags/, часть — нет.

Так выглядит служебный интерфейс с настройками браузера Chrome

Так выглядит служебный интерфейс с настройками браузера Chrome

Поскольку прямого соответствия именований между параметром запуска и названием опции нет, не стал описывать в статье вариант настройки через переключение опций.

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

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

Так выглядит небольшая часть параметров в динамике:

Тут показано менее 1% всех параметров запуска браузера

С учетом постоянного устаревания и регулярных ломающих изменений в функционале браузера, нет ни возможности ни особого смысла описывать абсолютно все, поэтому ниже только те параметры, которые постоянно используются на моих машинах в целях оптимизации.

Поехали.

--enable-features=VaapiVideoDecoder,VaapiVideoEncoder

Параметр --enable-features= как нетрудно догадаться из названия используется для принудительного включения опций браузера.

В данном случае принудительно включаются кодеки для аппаратного декодирования видео, работающие на базе Video Acceleration API (VAAPI).

По-умолчанию, если библиотека VAAPI в системе не установлена либо работает неправильно, браузер автоматически переключится на медленный программный кодек, с чего будет сильно нагружаться процессор при проигрывании видео.

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

Комфортно смотреть видео даже на современном железе без работающего VAAPI вряд ли получится из-за сильной загрузки процессора, поэтому настройка актуальна для всех пользователей.

--enable-gpu-rasterization

Данный ключ принудительно включает аппаратную отрисовку страниц с помощью GPU:

Chrome 37 introduced a GPU rasterizer. When enabled, some paint workloads can go from 100ms/frame to 4-5ms/frame.

Несмотря на то что опция является «экспериментальной» и вроде как работает не во всех случаях — ее включение это единственный вариант комфортного использования современного браузера на устаревшем железе.

--disable-gpu-compositing

Принудительное отключение GPU-реализации композитора страниц.

Актуально для сильно устаревшего оборудования, вроде моего Asus F3KE, поскольку GPU-композитор на нем порождает совершенно дикие визуальные артефакты:

Феерический баг

--enable-zero-copy

Согласно строчке с описанием в исходном коде браузера:

Enable rasterizer that writes directly to GPU memory associated with tiles.

Немного ускоряет рендер страниц и снижает нагрузку на память, но может порождать визуальные артефакты, так что включать стоит не всем.

--disable-background-networking

Запрещает браузеру использовать фоновые сетевые запросы, например проверку обновлений для установленных расширений.

--disable-client-side-phishing-detection

Отключает фоновую проверку сайтов на фишинг.

Этот параметр вроде как удален в новых версиях браузера, но все еще часто встречается в различных руководствах и материалах.

Фоновое обновление этих баз отнимает ресурсы а сама проверка плохо работает в современных реалиях разделенного интернета, поэтому отключаем.

--disable-prompt-on-repost

Отключает дурацкое предупреждение о повторной отправке формы:

--disable-sync

Отключает облачную синхронизацию учетной записи Google.

Актуально только для обычного Chromium, для ungoogled-версии не используется, поскольку функционал глобальной учетной записи там вырезан.

--metrics-recording-only

Указывает браузеру только записывать отчеты с метриками производительности, но запрещает отправлять их на сервера Google. Отчеты сохраняются в текущем профиле, актуальны при поиске проблем с медленной работой браузера или отдельных сайтов.

--no-first-run

Отключает приветственный диалог при первом запуске браузера.

--safebrowsing-disable-auto-update

Отключает автоматическое фоновое обновление баз для «Safe Browsing» — специального сервиса Google для защиты от фишинга и подозрительных сайтов. Актуально для обычного Chromium, поскольку в ungoogled‑версии функционал «Safe Browsing» удален.

--ignore-gpu-blocklist

Натурально заставляет браузер «работать на дровах» — использовать неподдерживаемое и устаревшее оборудование для аппаратного ускорения.

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

--renderer-process-limit=2

Еще один «магический» параметр, критически влияющий на производительность браузера и потребляемые ресурсы:

именно с его помощью переопределяется лимит на количество запущенных процессов отрисовки страниц — самых тяжелых процессов браузера, создающих основную нагрузку на систему.

Количество таких процессов напрямую влияет на потребляемые ресурсы, поэтому в случае ограниченных ресурсов стоит выставить какое-то небольшое число.

--disable-smooth-scrolling

Просто «имба» за которую вы потом будете благодарить — параметр отключает плавную прокрутку в браузере, которая очень сильно влияет на скорость при работе на слабом или устаревшем оборудовании.

Влияет настолько сильно, что разницу становится видно визуально после перезапуска.

--wm-window-animations-disabled

Отключает практически всю анимацию во внутренних интерфейсах браузера — там где опции настроек, закладки и расширения.

--animation-duration-scale=0

Переопределяет длительность воспроизведения CSS-анимации, значение 0 означает полное отключение, но работает к сожалению только для элементов интерфейса самого браузера, не для страниц.

--disable-spell-checking

Отключает фоновую проверку правописания, которая серьезно влияет на скорость работы браузера (вплоть до подвисания страниц).

--enable-unsafe-swiftshader

Еще один важный параметр, который разрешает использование «небезопасного» программного рендера WebGL, что позволяет использовать 3D-графику в браузере даже на устаревшем оборудовании, которое не поддерживает современное Vulkan API.

--disable-features=WhatIsNewPage,Promotions,LensOverlay,OptimizationGuideOnDeviceMode

Данный параметр по прямой аналогии с описанным в самом начале --enable-features= переопределяет опции браузера, которые необходимо отключить.

В данном случае отключаем встроенную рекламу новых фич браузера, которые вылезают при обновлениях и очень сильно бесят отвлекают.

Актуально только для обычного Chromium, поскольку в ungoogled-версии все эти радости вырезаны целиком.

Теперь рассказываю для самой широкой аудитории — про оптимизацию браузера под Windows.

Прокрутка ленты Reddit в качестве демонстрации, поскольку Reddit — один из самых «тяжелых» популярных сайтов, известных автору

❯ Хром и Windows

Я использую Windows 11, 10 и 7 на рабочих станциях а также множество разных виртуальных машин с серверными версиями Windows.

Поскольку оптимизации актуальны только при использовании браузера на рабочей станции (мало кому интересно работать из браузера прямо с сервера, правда?), поэтому в качестве тестовой среды будут выступать только три пользовательских версии Windows: 11, 10 и 7.

Технические характеристики машины из ролика с лентой Reddit

Технические характеристики машины из ролика с лентой Reddit

Скрипт запуска выглядит следующим образом:

chrome.exe --enable-features=VaapiVideoDecoder,VaapiVideoEncoder^

--disable-features=WhatIsNewPage,Promotions,LensOverlay^

--enable-gpu-rasterization^

--disable-gpu-compositing^

--enable-zero-copy^

--disable-background-networking^

--disable-client-side-phishing-detection^

--disable-prompt-on-repost^

--disable-sync^

--metrics-recording-only^

--no-first-run^

--safebrowsing-disable-auto-update^

--ignore-gpu-blocklist^

--renderer-process-limit=4^

--disable-smooth-scrolling^

--wm-window-animations-disabled^

--animation-duration-scale=0^

--enable-unsafe-swiftshader %*

Сохраняете текст выше в файле run.cmd, кладете в каталог рядом с chrome.exe и используете для первого запуска.

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

Замечу, что символ ^ — аналог \ в UNIX-мире и используется для переноса длинных строк в командных скриптах под Windows.

Если что‑то перенесется неправильно — просто удаляете символы ^ и сводите все в одну длинную строку.

Также добавлю, что в последние версии и Chrome (и даже Chromium) под Windows авторы напихали AI-фич под завязку, поэтому на моих рабочих станциях с Windows ныне используются только и исключительно Ungoogled-сборки.

Ungoogled Chromium на Windows 7 со всем тюнингом. Справа менеджер задач и загрузка памяти

Chrome и старые Windows

Официально Google перестала поддерживать Windows 7 для Chrome/Сhromium еще в 2023 году, поэтому если у вас осталась живая «семерка» и есть необходимость использовать современный браузер — будут определенные сложности.

Обратите внимание на версию браузера и дату сборки

Обратите внимание на версию браузера и дату сборки

Цитируя одну известную шутку: чем бы вы ни занимались — обязательно найдется азиат, который сделает еще круче. В случае с портированием Chrome на устаревшие версии Windows именно так и произошло:

стоило только начать изучать вопрос и доступные варианты — немедленно нашелся репозиторий со сборками последних версий Chrome... под Windows XP!

Windows XP вышла в далеком 2001м году и процесс портирования под настолько старую ОС был весьма непростым занятием. Вот тут выложены готовые сборки браузера под Windows XP с поддержкой аппаратного ускорения (!) — невероятный хардкор.

Теперь переходим к разделу для самых ярых фанатов своего дела.

Да, это современная сборка браузера Chrome, летающая на антикварном оборудовании. Без записи с экрана все работает еще быстрее

❯ Chrome и FreeBSD

Наконец последним разделом описываю то, с чего началась эта статья в далеком 2023-м году:

оптимизация работы браузера Chrome под FreeBSD на очень сильно устаревшем оборудовании.

«Очень сильно устаревший» — про тот самый Asus F3KE из 2007 года, спасенный автором от достойного погребения за долгую службу.

Так выглядит вывод fastfetch с описанием оборудования:

<a href="https://www.warhammer-community.com/en-gb/articles/iIP5RR4u/40-years-of-warhammer-even-in-death-i-still-serve/" target="_blank" rel="nofollow noopener">Even In Death, I Still Serve</a> (ц)

Even In Death, I Still Serve (ц)

Конечно же для столь мощного колдунства пришлось провести немало нечистых ритуалов оптимизаций (начиная с кастомного ядра), но как минимум половина производительности — результат подбора правильных параметров браузера.

Так выглядит скрипт запуска:

#!/usr/local/bin/bash

source ~/.exports.sh

/usr/local/bin/ungoogled-chromium
--enable-features=VaapiVideoDecoder,VaapiVideoEncoder \
--enable-gpu-rasterization \
--disable-gpu-compositing \
--enable-zero-copy \
--disable-background-networking \
--disable-prompt-on-repost \
--metrics-recording-only \
--no-first-run \
--ignore-gpu-blocklist --renderer-process-limit=2 \
--wm-window-animations-disabled \
--animation-duration-scale=0 \
--enable-unsafe-swiftshader "$@"

Поскольку во FreeBSD довольно давно используется ungoogled-версия браузера, поэтому были убраны параметры для того функционала, который был вырезан в ungoogled-версии.

Строка:

source ~/.exports.sh

на самом деле скрывает портал в ад отдельный механизм повторного использования сессии DBus, подключаемый тут файл ~/.exports.sh создается вот таким специальным скриптом:

#!/usr/local/bin/bash

FF=0

if [[ -z $DBUS_SESSION_BUS_ADDRESS ]]; then
lines=$(pgrep "dbus-daemon" -u "$USER" | (while read -r line
do
echo $line
exp=`procstat -h -e $line`
if [[ "$exp" == *"DBUS_SESSION_BUS_ADDRESS="* ]]; then
echo "DBus session found"
exp2=`echo $exp |sed 's/.*DBUS_SESSION_BUS_ADDRESS=\([^ ]*\).*/\1/'`
echo export DBUS_SESSION_BUS_ADDRESS="$exp2" > ~/.exports.sh
FF=1
break
fi
done; echo $lines) )
echo $FF
if [[ "$FF" = 8 ]]; then
echo "DBus session not found, starting.."
dbus_out=`dbus-launch`
echo $dbus_out > ~/.exports.sh
fi
if [[ -f ~/.exports.sh ]]; then
source ~/.exports.sh
fi
fi

Этот скрипт натуральным образом ворует сессию работы с DBus, забираясь в окружение другого запущенного процесса (да, так можно было) — все ради того чтобы не запускать процесс dbus-launch повторно.

Помимо приседаний с параметрами, в версии для FreeBSD также используется описанное выше расширение браузера для отключения анимации, но вместо изоляции через cgroups используется более простой вариант со сниженным лимитом на количество запущенных процессов рендера:

--renderer-process-limit=2

Чего вполне достаточно для комфортной работы.

❯ За кадром

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

--profile-directory=test-profile

Указывает альтернативное название профиля, по-умолчанию он называется Default и находится в каталоге пользователя.

Актуально в первую очередь для тестов, но может влиять на системы защиты от ботов, поскольку данный ключ часто используют системы автоматизации, работающие поверх браузера.

--single-process

Заклинание чудовищной силы, которое заставляет браузер работать в одном единственном процессе:

Браузер Chrome, работающий целиком в одном процессе. Шок-контент

Браузер Chrome, работающий целиком в одном процессе. Шок-контент

Этот весьма опасный (во всех смыслах) параметр переключает Chrome в нестандартный режим работы, при котором браузер не порождает отдельные процессы на каждую вкладку.

К сожалению такой режим работы является весьма нестабильным и браузер будет падать, особенно на сложном контенте и с большими расширениями вроде AdBlock.

Тем не менее, это единственный известный мне способ заставить Chrome работать без порождения дополнительных процессов.

--disable-features=UseSkiaRenderer

Отключает бекэнд Skia Renderer, используемый для отрисовки практически всей графики:

Chrome uses Skia for nearly all graphics operations, including text rendering. GDI is for the most part only used for native theme rendering; new code should use Skia.

К сожалению этот параметр является обязательным если вы собираетесь использовать --single-process, думаю очевидно что скорость отрисовки страниц при этом упадет.

❯ Эпилог

Мой опыт оптимизации браузера весьма специфичный и далеко не глобальный, поскольку решаемая задача касается производительности на устаревшем оборудовании и не самых популярных операционных системах.

Поэтому с радостью почитаю про ваш опыт и применяемые практики.


Автор текста: alex0x08

Написано при поддержке Timeweb Cloud

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.


📚 Вам может быть интересно:

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 18

Просто интерес на реакцию других людей, о том как я перешёл на линукс

я сидел на Винде, выжимал все соки, и ставил 2 винды и Линукс как на попробовать, потом решил удалить 2 Винду и оставить только Винду и Линукс (я знаю что Линукс это ядро а дистрибутивы это система и бла бла бла) а удалить 2-рую Винду решил через винпе с дискпарт, в итоге удалил разметку диска... 3 дня восстанавливал, и восстановил только диск C и так с поломаной fs (файловой системой), решил установить систему которая была, а на флешке с Ventoy был только тот Линукс на потестить, в итоге поставил, был как пример 2+2=5, тупо и не понятно, всё спрашивал у ии, потом начал осваиваться, пользоваться терминалом чаще, изучал TTY и русский язык в нём, долго настраивал систему, потом залез в винпе и снова случайно переразметил диск... (да, я не учусь на ошибках) решил снова накатать Линукс, сделал всё почти так же, сделал даже свой сайт, и полез в загрузчик (grub) в итоге загрузки системы не было, а было только grub recap, и строка, я загрузился через команды в грабе и сделал sudo update-grub, всё заработало, потом установил граб на хдд, старый но рабочий, сам начал прописывать всё через пункты menuentry, не без помощи ии но я только обучался, и после 3 системы через пункты и загрузки ИСО (через loopback) я начал подозревать себя в дистрохопинге, я угадал, 13 систем это не "просто покатать" а потом и 17, начал изучать и устанавливать систему через ручную настройку и filesystem.squashfs (в исо файле) распоковывал на диск и делал базовые настройки, загружался и настраивал уже не через chroot, всё давалось тяжело, но я быстро запоминал команды и начал пользоваться TTY даже для выключения ноута (poweroff), даже взломал брата через локальную сеть и авто загрузки скрипта, сделал "хоррор" сообщения основные на песне по кинито пет, управлял его ноутом, а сейчас настроил и собрал другой слабый ПК который теперь выдаёт 80-100 фпс в 1.21.8, я мало играю в игры, больше пытаюсь найти новые ИСО образы и прописать их в граб (grub.cfg), а вот главная часть, мне было 11 когда слетела винда, а сейчас 12, да, я прошёл это за год, и много деталей умолчено так как я их не особо помню

если попросите могу скинуть сюда конфиг из grub.cfg

ладно скину сразу:
insmod ext2

insmod ntfs

insmod fat

insmod part_gpt

insmod part_msdos

insmod loopback

insmod chain

insmod search_fs_uuid

insmod chainloader

menuentry "MX-23.3 ISO Custom Persistence" {

set isofile="/MX-23.3_x64.iso"

search --no-floppy --fs-uuid --set=root 2A82-F516

loopback loop ($root)$isofile

linux (loop)/antiX/vmlinuz fromiso=$isofile buuid=2A82-F516 boot=live persist_all home=2A82-F516 quiet splash

initrd (loop)/antiX/initrd.gz

}

menuentry "Tiny Core Pure 64 (Graphics-RAM)" {

search --no-floppy --fs-uuid --set=root 2A82-F516

set isofile="/TinyPure64.iso"

loopback loop ($root)$isofile

linux (loop)/boot/vmlinuz64 loglevel=3 tce=UUID=2A82-F516 waitusb=12

initrd (loop)/boot/corepure64.gz

}

menuentry "Core Pure 64 (Console-RAM)" {

search --no-floppy --fs-uuid --set=root 2A82-F516

set isofile="/CorePure64.iso"

loopback loop ($root)$isofile

linux (loop)/boot/vmlinuz64 loglevel=3

initrd (loop)/boot/corepure64.gz

}

menuentry "Tiny Core Pure 64 (ext4-Graphics)" {

search --no-floppy --fs-uuid --set=root 2A82-F516

set isofile="/TinyPure64.iso"

loopback loop ($root)$isofile

linux (loop)/boot/vmlinuz64 loglevel=3 tce=UUID=48a15c2f-33d7-4573-9147-c0c7cb03d22d waitusb=12

initrd (loop)/boot/corepure64.gz

}

menuentry "l24amd64" {

search --no-floppy --fs-uuid --set=root 2A82-F516

set isofile="/l24amd64.iso"

loopback loop ($root)$isofile

linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile rootwait quiet splash

initrd (loop)/casper/initrd

}

menuentry "l18amd64" {

search --no-floppy --fs-uuid --set=root 2A82-F516

set isofile="/l18amd64.iso"

loopback loop ($root)$isofile

linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile toram rootwait

initrd (loop)/casper/initrd

}

menuentry "debian (LXDE)" {

search --no-floppy --fs-uuid --set=root 2A82-F516

set isofile="/d-live-13-64l.iso"

loopback loop ($root)$isofile

linux (loop)/live/vmlinuz-6.12.73+deb13-amd64 boot=live findiso=$isofile toram rootwait

initrd (loop)/live/initrd.img

}

Показать полностью

Ищу кодера для создания оболочки системы игровой консоли

Ищу кодера для создания оболочки системы игровой консоли

Привет!

Я работаю над проектом игровой Linux-консоли.

В качестве базы планируется использовать ChimeraOS, а поверх неё создать собственную консольную оболочку.

Ищу разработчика, которому было бы интересно поучаствовать в создании интерфейса и лаунчера системы

Основные задачи:

автозапуск оболочки после включения;

управление только геймпадом;

библиотека игр;

экран запуска игр;

настройки системы;

поддержка будущего обновления интерфейса.

По ощущениям интерфейс должен быть близок к современным игровым консолям (PS4, PS5, Steam Deck), но без копирования их дизайна.

Проект сейчас некоммерческий и создаётся на энтузиазме. Главная цель на ближайшее время, собрать работающий devkit и показать его на каких нибудь игровых мероприятиях. А после выйти на краундфандинговые площадки.

Если интересно, можно обсудить текущий план развития @stat_kry

Показать полностью 1
37

Свой сервер на Debian 13

Всем привет и лучи добра!
Хочу поделиться своими личными достижениями!
Собрал, установил и настроил свой сервер!)
Отдали старую машинку:
ASUSTeK Computer INC. P8Z68-M PRO
CPU: i7-2700K (8) @ 3.9GHz [38.0°on]
Memory: 16GB DDR3
Добавил ещё 16 GB памяти.
Установил диски:
Smartbuy SSD NVMe 256GB
AMD SSD Sata R5SL128G
Seagate HDD ST1000DL002-9TT1 1000GB
M3D B16A SSD Sata 111 GB
2 диска Seagate HDD ST6000DM003-2CY1 6TB
Так как в этой материнской плате нет NVMe слота, купил переходник на PCI-E x4
Установил Debian 11 Bullseye, 3 года назад обновился на 12 Bookworm, а год назад на 13 Trixie.
Зарегистрировал доменное имя в зоне .ru, взял у провайдера постоянный фиксированный ip адрес, настроил AAA записи домена на свой ip адрес, на роутере переадресацию портов.
На сервере запустил следующие сервисы:
Nextcloud
XMPP сервер со звонками и web интерфейсом для управления
Почтовый сервер postfix+dovecot
rtorrent
mysql+phpmyadmin
Сервер World of Warcraft Legion(win версия через Wine)
webmin
Web интерфейс nginx
Сервер RustDesk
Home Assistant (виртуальная машина kvm)
Автообновление ssl wildcard сертификата для моего доменного имени

Автоматическое резервное копирование системы на отдельный диск и нужных данных сервисов.
Диски разбиты и смонтированы так:
sda 8:0 0 5,5T 0 disk
└─sda1 8:1 0 5,5T 0 part
└─md0 9:0 0 10,9T 0 raid0
└─d3-d3 253:0 0 10,9T 0 lvm /z/n
/z/z
sdb 8:16 0 5,5T 0 disk
└─sdb1 8:17 0 5,5T 0 part
└─md0 9:0 0 10,9T 0 raid0
└─d3-d3 253:0 0 10,9T 0 lvm /z/n
/z/z
sdc 8:32 0 931,5G 0 disk
└─sdc1 8:33 0 931,5G 0 part /z/R
sdd 8:48 0 119,2G 0 disk
├─sdd1 8:49 0 50G 0 part /usr
├─sdd2 8:50 0 40G 0 part /var
├─sdd3 8:51 0 10G 0 part /tmp
└─sdd4 8:52 0 19,2G 0 part /z/R/ressyst
sde 8:64 0 111,8G 0 disk
├─sde1 8:65 0 1G 0 part /boot/efi
└─sde2 8:66 0 110,8G 0 part /root
nvme0n1 259:0 0 238,5G 0 disk
├─nvme0n1p1 259:1 0 100G 0 part /
├─nvme0n1p2 259:2 0 100G 0 part /y
└─nvme0n1p3 259:3 0 38,5G 0 part [SWAP]

Жду комментарии, советы, критику, вопросы.
Подскажу, что как настроил!)

Показать полностью
77

Linux mint на старом ноутбуке Lenovo Z510, лучше чем Windows

Linux mint на ноутбуке Lenovo Z510

Linux mint на ноутбуке Lenovo Z510

У меня есть старый ноутбук Lenovo Z510. Процессор: Intel Core i3. Оперативная память: 8GB DDR3. Постоянная память: 500 GB SSD. Видеокарта две штуки: встроенная в процессор intel и дискретная: NVIDIA GeForce GT 740M. Объем видеопамяти 2 GB.

Ноутбук используется для интернета, офиса, написания кода на Python, мультимедиа, обработки фотографий, рисования на графическом планшете Wacom, рисование схем в Inkscape, 3d моделирования, монтажа коротких видеороликов и для легких игр.

Изначально на нем была Windows 8 (была предустановлена изначально), затем сломался жесткий диск и после того как старый жесткий диск был заменен на новый. На нем были установлены параллельно (Dual boot) Windows 10 и Linux mint. И так и работало до недавнего времени, а затем жесткий диск начал сыпаться. Я почистил ноутбук, от пыли и заменил жесткий диск на SSD накопитель, а заодно сделал полную диагностику. Дальше пришлось решать, что на него ставить. Сначала хотел снова установить Windows 10 и Linux mint. Но потом подумал, а какой в этом смысл? И в самом деле, поддержка Windows 10 была прекращена осенью прошлого года. С Windows 11, ноутбук не совместим аппаратно. Microsoft Office как и другими программами от Microsoft я много лет как не пользуюсь (давно перешел на LibreOffice и все документы храню в форматах ODF), браузер Firefox, Blender, Krita, RawTherapee, VLC, Inkscape, Shotcut, Pycharm, PCSX2 — бесплатный эмулятор PlayStation 2, браузер Firefox кросс платформенные, мультимедиа вся есть на Linux. Единственная программа которая нативно не запускается на Linux это Affinity Photo (я в нём фотографии обрабатывал), но его можно запускать через WinBoat или перейти на GIMP. Исходя из этого я решил полностью перейти на Linux mint. Поэтому я вставил приготовленную флешку с Linux Mint 22.3 Zena, и загрузившись с неё приступил к установке. Саму установку описывать не буду (она очень простая), точно так же как и настройку (тоже довольно просто). Расскажу какие преимущества получил.

Чистая и не требовательная к ресурсам система. Без вирусов, рекламы и телеметрии.

Потребление памяти меньше 2 GB

Потребление памяти меньше 2 GB

Linux mint занимает меньше 2 GB ОЗУ, после загрузки, может работать на 4 GB, ей не нужен антивирус, в ней нет рекламы и телеметрии. Система на SSD работает быстро и обладает высокой скоростью отклика. Ноутбук Lenovo Z510 полностью совместим с Linux mint.

Интернет.

Браухер Firefox

Браухер Firefox

Программы для интернета есть все. Браузер Firefox, менеджер Telegram, торрент клиент qBittorrent. На современном ПК браузер, это главная программа. На Linux она работает.

Офис.

LibreOffice Writer

LibreOffice Writer

LibreOffice под Linux функционально идентичен LibreOffice под Windows. А поскольку у меня все документы хранятся в формате ODF. То при переходе на Linux mint, работать с документами, стало так же удобно как и на Windows.

Написание кода на Python.

Pycharm Hello World

Pycharm Hello World

Поддержка Python встроена в Linux. Достаточно установить любую IDE (у меня это Pycharm) и можно писать код. Так же используя Python на Linux можно автоматизировать ряд задач.

Обработка фотографий.

Графический редактор GIMP. Сейчас я обрабатываю фотографии в нём.

Графический редактор GIMP. Сейчас я обрабатываю фотографии в нём.


Raw конвертер RawTherapee нативно работает на Linux. А растровый редактор фото Affinity Photo не имеет нативной версии для Linux. Пришлось выбирать-запускать его через WinBoat, или переходить на GIMP. Который с выходом третьей версии сильно похорошел, выбрал его.

Рисования на графическом планшете Wacom.

Графический редактор Krita. Рисунок выполнен на графическом планшете Wacom.

Графический редактор Krita. Рисунок выполнен на графическом планшете Wacom.

Сам планшет поддерживается Linux на уровне ядра. И работает сразу после подключения. Можно настроить через графический интерфейс или терминал. Программ для рисования я пробовал много, считаю что лучшая это Krita. Которая нативно запускается на Linux.

Рисование схем в Inkscape

Векторный редактор Inkscape

Векторный редактор Inkscape

Inkscape под Linux функционально идентичен Inkscape под Windows. Программа по интерфейсу и функциональности напоминает Corel Draw.

3d моделирование

3D редактор Blender

3D редактор Blender

Считаю лучшей программой для 3d моделирования Blender. Потому что во-первых в нем есть всё (моделирование, скульптинг, анимация и.т.д.), во-вторых он кросс платформенный, в третьих он бесплатный. Уже много лет как пользуюсь им, по моему, это наиболее перспективный 3d редактор. Разработчиков спонсируют гиганты IT индустрии Apple и Nvidia. Epic Games — в 2019 году выделила значительный грант в размере $1,2 млн. Недавно посмотрел мультфильм «Поток» (оригинальное название — Flow, 2024) Гинтса Зилбалодиса, он был полностью сделан в Blender. Я пользуюсь версией 2.8. Версия старая, но не требовательная к ресурсам и обладает широкими функциональными возможностями.

Монтажа коротких видеороликов

Shotcut для монтажа видео

Shotcut для монтажа видео

Под Linux нативно работают Kdenlive и Shotcut. Возможностей которых достаточно для большинства пользователей. Я пользуюсь Shotcut. Он удобен и функционален.

Мультимедиа

Видеоплеер VLC. Анимационный фильм Поток. Выполнен в Blender.Для просмотра видео и

Видеоплеер VLC. Анимационный фильм Поток. Выполнен в Blender.Для просмотра видео и

прослушивания аудио в Linux есть набор нативных программ.

Простые игры.

Эмулятор PlayStation 2. Игра серии Need for Speed Underground.

Эмулятор PlayStation 2. Игра серии Need for Speed Underground.

Выбор игр под Linux весьма обширен. Под Linux есть нативные игры, далее большая часть Windows игр запускается на Linux через Proton, а ещё на Linux есть эмуляторы игровых приставок. Я пользуюсь PCSX2 — бесплатным эмулятором PlayStation 2. Он позволяет запускать любые игры выпущенные под эту игровую приставку. А их было выпущено более трёх тысяч штук. Так что под Linux есть во что играть.

У меня не вызывает сомнений что ноутбук с уставленной Linux mint, прослужит ещё не один год. Поэтому если у вас есть старый ноутбук или стационарный ПК который не совместим с новыми версиями Windows, то я советую установить на него Linux mint. Только лучше это делать на SSD накопитель. Так он прослужит вам ещё долго. Потому что сейчас у многих есть техника не совместимая с Windows 11. И которая тем более будет не совместима с Windows 12. Но которая отлично совместима с Linux. Который созрел, для повседневного использования в качестве основной операционной системы. Он прост, надежен и безопасен.

Показать полностью 11
78

Ответ на пост «Ubuntu 26.04 LTS (Resolute Raccoon) Взгляд системного администратора»1

1. "Взгляд системного администратора" - не смеши мои копыта. Ни одного админа не знаю, кто бы в проде использовал систему, которой и недели нет от роду. 26.04 Это так: "школьникам" палочкой потыкать, для сервера: край 24.04 и то если приперло, а так максимум 22.04

2. Wayland - на кой он на серваке, он и для десктопа скажем так не айс пока, Гнум 5-й- вообще курам на смех, и так Гномощель в 3-й и 4-й итерациях пока еще юзают большинство прикладных приложух, браузеры и.т.п. Этот зоопарк еще и причесать к общему виду заколебешься, а тут Каноникал 5-й выкатила и 7-е ядро, которое даже в арч анстейбл не завезли, постеснялись.

3. 6 гигов норма - держите меня семеро, чистая система потребляет 2 гига - збс? Кеды с крысой в базе берут 0,5-0,8 гигов в зависимости от мастерства мейтейнера, а прочие: Лхкуте и ТДЕ и того меньше.

Короче: оставят тебя на второй год в школе с таким подходом, "админ".

58

Ubuntu 26.04 LTS (Resolute Raccoon) Взгляд системного администратора1

Ubuntu 26.04 LTS (Resolute Raccoon) Взгляд системного администратора

23 апреля 2026 года Canonical выпустила Ubuntu 26.04 LTS Resolute Raccoon. Для меня это старт большого проекта. Работа Linux-администратора в крупной компании подразумевает создание «золотого образа», который потом годами будет крутиться на сотнях машин.

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

Срок поддержки заявлен до 2031 года. Для корпоративной среды это главный аргумент: если сейчас нормально подготовить дистрибутив, на нём можно спокойно жить ещё 5 лет.

Первое знакомство.

Canonical в документации указывает для Ubuntu Desktop 26.04 минимум 6 ГБ RAM, 2 GHz dual-core CPU и 25 ГБ.

В чистом виде, без swap-файла, система заняла у меня около 6.6 ГБ на диске. Потребление оперативки на старте чуть меньше 2 ГБ. На фоне этого официальная рекомендация в 6 ГБ RAM выглядит как оценка для комфортной работы.

Думаю после загрузки всех требуемых пакетов, браузеров с десятками вкладок, мессенджерами, антивирусами, агентами и прочими пожирателями ресурсов будет в самый раз.

После тестовой установки нескольких тяжеловесных приложений, система ощущается плавной и отзывчивой. Дальше предстоит выяснить что поменялось в системе, где могут сломаться сценарии Puppet, не поедут ли настройки dconf/gsettings и ещё тысячи других мелочей.

Что нового в «Решительном еноте»?

Если сравнивать с 22.04 (которая до сих пор остается основной рабочей лошадкой во многих конторах), то это довольно крупный технологический скачок.

- Ядро Linux 7.0. Ubuntu 26.04 базируется на новой мажорной версии ядра. Это поддержка самого свежего железа, оптимизации в работе планировщика, а также свежие фичи в сетевом стеке.

- GNOME 50 принёс улучшения в адаптации интерфейса под небольшие экраны, аппаратное ускорение записи экрана, прокачанный remote desktop и более плавную работу. GNOME-сессия теперь работает только на Wayland. Старый добрый X11 не бросили (он работает через XWayland), но стандартная сессия как X.org больше не запускается. Здесь есть риск что все настройки связанные с графикой и удалённым доступом могут сломаться.

- Также Canonical удалила PreLogin и PostSession скрипты. Это может задеть корпоративные сценарии, например синхронизацию домашней директории при входе/выходе или очистку временных данных.

- Расширилось использования Rust в системе. Это помогает бороться с целым классом ошибок памяти, что всё равно не делает утилиты полностью безопасными.

- APT 3.1. Наконец то история операций и команды для отката: apt history-info, apt history-undo, apt history-redo, apt history-rollback. Вещь полезная, особенно когда случайно удалил лишнее.

Так же появилось несколько изменений, которые важны для администратора.

- Dracut — новый механизм сборки initramfs по умолчанию. Он отвечает за ранний этап загрузки системы: подготовку драйверов, модулей, шифрования дисков и всего, что нужно до старта основной ОС.

- TPM-backed full-disk encryption — полнодисковое шифрование с привязкой ключей к TPM-чипу. Система может разблокироваться автоматически, если проверка целостности прошла успешно. Это удобно, но требует аккуратности при обновлениях BIOS или замене платы.

- CUDA и ROCm в репозиториях Ubuntu — упрощённая установка инструментов для вычислений на GPU, что полезно для ML.

Итог

Первое впечатление у меня положительное. Система установилась без сюрпризов, занимает умеренно места, по памяти выглядит адекватно, интерфейс работает плавно. В системе заявлено довольно много новых технологий, что обещает начало долгого марафона по настройке и тестированию. Будем смотреть, как Енот покажет себя в «боевых» условиях.

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества