Я хотел бы ограничить количество процессорного времени, выделяемого для определенных процессов (например, Firefox, Safari, ...).
Я не могу понять, почему такие программы, даже когда они не используются (ничего не загружается, нет анимации, работает в фоновом режиме, ...), так ресурсоемки. Почему браузер должен съедать 50% или больше моего процессора? Могу ли я ограничить его до 10%?
macos
lion
battery
performance
Pietro
источник
источник
Ответы:
Это не совсем то, что вы хотели, но, что касается Google Drive и Chrome, это то, что помогло мне:
Google Drive («Резервное копирование и синхронизация»)
де-Приоритетность:
вернуть в нормальное состояние:
Хром
расставить приоритеты во всех текущих процессах:
вернуть в нормальное состояние все текущие процессы:
источник
cputhrottle
это инструмент, который вам нужен. Вы можете установить его с помощью Homebrew .Вы можете отслеживать ряд процессов по имени, запустив скрипт Bash ниже. Я не совсем уверен, как превратить это в элемент входа в систему, так как
cputhrottle
требует разрешения суперпользователя. Запустите его как скрипт, в рабочем процессе Automator, что угодно:[Изменено]
Я добавил другую версию для этого скрипта (
bash
скрипт), который может быть полезен для людей, которые хотят ограничить использование процессора для нескольких приложений.Этот новый скрипт также позволяет вам указать список, содержащий имя приложения и ограничение процессора для него.
Основное отличие состоит в том, что вы можете добавить ограничение процессора для каждого приложения, и оно будет запускаться только один раз для каждого приложения. Я также добавил опцию для уничтожения всех
cputhrottle
процессов.Скрипт предполагает, что оба
cputhrottle
иpidof
установлены перед его запуском.Источник:
источник
cputhrottle
форум был удален из Homebrew 17 февраля 2019 года, потому что он больше не работает . Yosemite была последней версией macOS для поддержкиcputhrottle
.Вы действительно можете! Есть CPUThrottle , который позволяет указать PID для ограничения.
Обратите внимание, что они пытаются использовать это по какой-то причине, это полезный инструмент, но то, что изо дня в день сделает его лучше или хуже для вас, будет чем-то, что вы обнаружите.
источник
Хотя это и не прямой ответ на вопрос OP, если у вас есть проблема с тем, что определенный процесс занимает слишком много вашего процессорного времени и делает ваш компьютер непригодным для использования, и вы не возражаете против того, сколько времени потребуется для завершения этого процесса Задача, над которой он работает, вы можете использовать
renice
для изменения приоритета этого процесса, чтобы он вел себя хорошо (отсюда и название).Во-первых, вам нужно найти PID процесса, который использует ресурсы процессора. Вы можете сделать это в Activity Monitor или в Terminal.app с помощью
ps
команды - например, чтобы найти PID браузера Safari, введите:Вторая строка выше - это вывод, а PID в данном конкретном случае - 17452.
Затем следующая задача - изменить приоритет процесса (допустим, мы хотим, чтобы Safari вел себя хорошо). Для этого в Terminal.app введите:
-n
Опция изменяет хороший уровень путем добавления 10 к текущему значению (0 по умолчанию). Диапазон значений от -20 до 20, при этом самое низкое значение означает самый высокий приоритет. Как обычный пользователь, вы можете использовать значения от 0 до 20. Чтобы назначить отрицательное значение, вам нужно иметь привилегии root (например, использоватьsudo
команду). Узнайте больше оnice
иrenice
набравman nice
иman renice
в Terminal.app.nice
иrenice
не ограничивайте процент использования ЦП для данного приложения как такового, однако они позволяют изменять приоритет планирования или, другими словами, сколько процессорного времени получит процесс. Это все зависит от загрузки процессора в вашей системе, поэтому, если система используется недостаточно, вы, скорее всего, не увидите никакой разницы.источник
Для всего этого есть простой однострочник:
Напишите название вашего приложения вместо Chromium и желаемый процент вместо 10, и все готово!
источник
pgrep Dropbox | sudo xargs -n 1 -I'{}' sh -c 'cputhrottle {} 10 &'
. Однако я не уверен, что MacOS поставляется сpgrep
установленным.Это основано на предыдущем ответе, но добавление ловушки для ctrl + c, чтобы удостовериться, что регулируемый процесс остается в состоянии продолжения, и добавление
set -e
так, что этот скрипт будет корректно завершаться, если сам процесс завершится:источник
Ссылка, которую разместил Николас Смит, больше не работает. Поэтому я нашел еще одно приложение, которое помогает людям, которые ищут его снова. приложение вызывает Apppolice.
http://www.macupdate.com/app/mac/49836/apppolice
источник
Это мой последний скрипт, держите в чистоте, команда cputhrottle выполняет только новый, если не существует
источник
Сценарий, написанный Димитрием, работает хорошо (на macOS), но продолжает работать с ошибками после закрытия приложения. Я изменил его, чтобы он закончил (с сообщением об ошибке о PID не найден):
источник
этот ш работал на меня
источник