Estou um pouco perdido com isso.
Estou executando uma grande importação de abertura e isso está fazendo com que meu sistema fique lento para um rastreamento completo, basicamente tornando-o inutilizável para qualquer coisa, até mesmo navegando na web. Como isso parece um pouco natural, passei um pouco de tempo olhando em volta.
A execução ps -Al
mostra que, aparentemente, por padrão, o Dock
, Finder
e SystemUIServer
todos parecem ser executados em uma prioridade muito inferior aos aplicativos da área de usuário. Enquanto os aplicativos do usuário normalmente têm prioridade 33, o Dock, o Finder etc. têm 53.
O resultado final é QUALQUER tarefa intensiva do processador que atrapalha completamente a interface do usuário e torna o sistema inutilizável até sua conclusão.
De qualquer forma, o uso renice -20 -p <prid>
deles aumenta a mesma prioridade que o restante da interface do usuário e resulta em não ter que esperar 1 a 3 segundos (!) Para que a interface do usuário responda a algo tão simples quanto um clique do mouse.
Thad disse: Eu tenho duas perguntas:
existe algum motivo para eu não estar alterando a prioridade do encadeamento desse localizador?
Existe alguma maneira de tornar a alteração de prioridade persistente, por exemplo, para que continue assim após a reinicialização.
fonte
Respostas:
Não sei se alguém que não seja o desenvolvedor da Apple seria capaz de responder a essa pergunta. Os segredos internos do Finder são seu domínio. Se você acha que existem alguns problemas visíveis de atraso na interface do usuário, envie um relatório de bug à Apple sobre isso.
A julgar pelo som das coisas (processos que ocupam intencionalmente todos os recursos), esse é um caso de ponta para o gerenciamento de memória. Ainda estou para ver um sistema com o melhor desempenho, sem algo em torno de 10 a 20% livre de recursos, como uma ajuda de buffer.
Apenas curioso, quais são esses processos que você está executando?
fonte
"Estou executando uma grande importação de abertura e está fazendo com que meu sistema fique lento para um rastreamento completo"
Então o Aperture é (provavelmente) o programa que você deseja
renice
, não os outros. Os processos que você mencionou são ajustados em relação aos aplicativos comuns do usuário, para que os aplicativos do usuário tenham maior prioridade e permaneçam responsivos, pois são o que os usuários usam na maioria das vezes.O seu caso é o menos comum, em que um aplicativo está executando uma tarefa intensiva e de longo prazo e o usuário deseja fazer outra coisa ao mesmo tempo. Por padrão, são os aplicativos do usuário que têm prioridade, para que essas tarefas intensivas obtenham mais recursos e sejam concluídas mais rapidamente.
Para cada usuário que reclama que outros aplicativos não estão respondendo o suficiente, há outro usuário reclamando que o aplicativo ativo não está sendo executado rápido o suficiente.
Se você estiver executando uma tarefa longa e que consome muitos recursos e sabe que deseja que ela tenha prioridade mais baixa para poder usar outros processos enquanto a tarefa é concluída - e não se importa se a tarefa intensiva demorar mais - você deve diminuir a prioridade de o processo executando a tarefa intensiva.
Quanto à sua segunda pergunta, existem várias soluções possíveis para tornar a
renice
mais automática. Por exemplo, você pode criar um applet de script que execute o Aperture com uma prioridade mais baixa e usá-lo para iniciar o Aperture. Ou você pode iniciar o Aperture através de um script de shell armazenado em um arquivo de comando *. (No entanto, isso abrirá o Terminal e executará o comando em uma janela de terminal, que pode não ser o que você deseja). Cada um destes está um pouco envolvido. Se você quiser exemplos, posso ver como fornecê-los mais tarde.fonte
renice
, mas o problema real é a prioridade dos localizadores.renice
opera em processos, não em threads.Fiz uma pergunta semelhante - há muito tempo, no ServerFault - embora não tão especificamente focada no Finder (embora eu ache o Finder intoleravelmente lento também). Como "renovar" permanentemente um processo no Mac OS X (ou iOS, etc)? Não foram encontradas muitas informações aqui - sobre uma boa maneira de fazer isso ... ou sobre o porquê disso.
Eu ainda penso sobre isso com frequência, e na verdade existem algumas maneiras de bagunçar o "básico", se você ousar. Como mencionado anteriormente, você pode executar vários truques de shell. Mas um bom lugar para tais delitos são as várias
/etc/rc*
rotinas de inicialização .. que já estão lá dentro .. configurando todos os tipos de parâmetros arbitrários (definidos pela maçã) para você. edite-os ou consulte como adicionar suas próprias rotinas ao processo de inicialização.Além disso, se você realmente quer fazer sua cabeça explodir ..
sudo sysctl list
e é a chave para a caixa de pandora, aka/etc/sysctl.conf
fonte