Gostaria de limitar a quantidade de tempo de CPU dedicada a certos processos (por exemplo, Firefox, Safari, ...).
Não consigo entender por que esses programas, mesmo quando não são usados (nada carregando, sem animações, rodando em segundo plano, ...), são tão famintos por recursos. Por que um navegador deve consumir 50% ou mais da minha CPU? Posso limitar a 10%?
macos
lion
battery
performance
Pietro
fonte
fonte
Respostas:
Não é exatamente o que você queria, mas, no que diz respeito ao Google Drive e Chrome, isso fez o truque para mim:
Google Drive ("Backup e sincronização")
de priorizar:
volte ao normal:
cromada
de priorizar todos os processos atuais:
retorne ao normal todos os processos atuais:
fonte
cputhrottle
é a ferramenta que você precisa. Você pode instalá-lo com o Homebrew .Você pode monitorar uma série de processos por nome, executando o script Bash abaixo. Não tenho muita certeza de como transformar isso em um item de login, pois
cputhrottle
requer permissões de superusuário. Execute-o como um script, em um fluxo de trabalho do Automator, qualquer que seja:[Editado]
Adicionei uma versão diferente para este script (um
bash
script), que pode ser útil para pessoas que procuram limitar a CPU para vários aplicativos.Esse novo script também permite especificar uma lista contendo o nome do aplicativo e o limite de CPU para ele.
A principal diferença é que você pode adicionar o limite da CPU por aplicativo e ele será executado apenas uma vez por aplicativo. Eu também adicionei a opção para matar todos os
cputhrottle
processos.O script assume que ambos
cputhrottle
epidof
estão instalados antes de executá-lo.Fonte:
fonte
cputhrottle
o fórum do foi removido do Homebrew em 17 de fevereiro de 2019 porque não funciona mais . Yosemite foi a última versão do macOS a oferecer suportecputhrottle
.Você pode de fato! Há CPUThrottle , que permite especificar um PID para restringir.
Observe que eles estão tentando usar isso por um motivo, é uma ferramenta útil, mas se isso o tornará melhor ou pior para você no dia a dia será algo que você descobrirá.
fonte
Embora não seja uma resposta direta à pergunta do OP, se você está tendo um problema com um processo específico que consome muito tempo da CPU e torna o computador inutilizável, não se importa quanto tempo leva para concluir o processo. Na tarefa em que está trabalhando, você pode usar o
renice
para alterar a prioridade desse processo, fazendo com que ele se comporte bem (daí o nome).Primeiro, você precisa encontrar o PID do processo que está consumindo os recursos da CPU. Você pode fazer isso no Activity Monitor ou no Terminal.app com o
ps
comando - por exemplo, para encontrar o PID do navegador Safari, digite:A segunda linha acima é a saída e o PID é 17452 nesse caso específico.
Em seguida, a próxima tarefa é alterar a prioridade do processo (digamos que é o Safari que queremos fazer com que se comporte bem). Para fazer isso, no Terminal.app, digite:
A
-n
opção altera o nível agradável adicionando 10 ao valor atual (0 por padrão). O intervalo de valores é de -20 a 20, com o menor valor significando a maior prioridade. Como usuário comum, você pode usar os valores de 0 a 20. Para atribuir um valor negativo, você precisa ter privilégios de root (por exemplo, usesudo
command). Leia mais sobrenice
erenice
digitandoman nice
eman renice
no Terminal.app.nice
erenice
não limite a porcentagem da CPU disponível para um determinado aplicativo em si, eles permitem alterar a prioridade do agendamento ou, em outras palavras, quanto tempo da CPU um processo terá. Tudo isso é relativo à carga da CPU no seu sistema; portanto, se o sistema estiver sendo subutilizado, você provavelmente não verá nenhuma diferença.fonte
Existe uma linha simples para fazer tudo isso:
Escreva o nome do seu aplicativo em vez de Chromium e a porcentagem desejada em vez de 10 e pronto!
fonte
pgrep Dropbox | sudo xargs -n 1 -I'{}' sh -c 'cputhrottle {} 10 &'
.pgrep
No entanto, não tenho certeza se o macOS vem com o instalado.Isso se baseia em uma resposta anterior, mas adicionar a interceptação para ctrl + c para garantir que o processo que está sendo acelerado seja deixado em um estado continuo e adicionar,
set -e
portanto, esse script sairá corretamente se o próprio processo sair:fonte
O link que Nicholas Smith postou não funciona mais. Então, encontrei outro aplicativo que faz o truque para as pessoas que o pesquisam novamente. o aplicativo chama Apppolice.
http://www.macupdate.com/app/mac/49836/apppolice
fonte
Este é o meu script final, mantenha limpo o comando cputhrottle apenas execute um novo se não existir
fonte
O script que Dimitri escreveu funciona bem (no macOS), mas continua executando com erros após o fechamento do aplicativo. Eu mudei para finalizar (com uma mensagem de erro sobre PID não encontrada):
fonte
isso funcionou para mim
fonte