Как отключить композитинг GPU для всех экземпляров Chrome и Electron на macOS?

Вопрос или проблема

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

Я обнаружил, что запуск Chrome с ключом командной строки --disable-gpu-compositing практически полностью решает эту проблему и делает это лучше, чем полное отключение аппаратного ускорения.

Однако на macOS единственный способ запустить Chrome таким образом – это запуск из терминала, так как эта опция недоступна в настройках или в chrome:flags. Это не идеально, так как мне приходится поддерживать оболочные алиасы для нескольких приложений (Chrome, Chrome Canary, Edge, VS Code и Slack), и каждое из них открывает окно терминала с выводом консоли.

В идеале мне хотелось бы иметь способ глобально отключить GPU-композитинг, но сохранить другие аспекты аппаратного ускорения для всех приложений Chromium и Electron на этом компьютере. Я думаю, что что-то подобное должно быть достижимо путем модификации списка блокировки GPU. Возможно ли как-то модифицировать его на локальном уровне?

Добавьте --disable-gpu-compositing так же, как

chromium --disable-gpu-compositing

Или:

anyElectronapp --disable-gpu-compositing

Ответ или решение

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

Шаг 1: Создание скрипта для запуска браузеров

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

  1. Откройте текстовый редактор (например, TextEdit или любой другой, который вы предпочитаете).

  2. Добавьте следующие строки для каждого приложения. Здесь представим цикл создания такого скрипта для Chrome:

    #!/bin/bash
    open -a "Google Chrome" --args --disable-gpu-compositing

    Для других приложений, таких как Chromium, Chrome Canary, Edge, VS Code или Slack, просто замените "Google Chrome" на имя нужного приложения. Например, для VS Code это будет:

    open -a "Visual Studio Code" --args --disable-gpu-compositing
  3. Сохраните файл с расширением .command, например, launch_chrome.command.

  4. Настройте права доступа для выполнения файла. Откройте терминал и выполните:

    chmod +x /path/to/your/launch_chrome.command

Шаг 2: Автозапуск приложений

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

Шаг 3: Дополнительные рекомендации

  1. Регулярные обновления: Убедитесь, что вы регулярно обновляете свои скрипты, особенно если версии ваших браузеров меняются.

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

  3. Обратная связь: Продолжайте делиться своими находками в bug tracker для Chromium, так как это может помочь в будущем исправить проблемы производительности для всех пользователей.

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

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

Капча загружается...