Como posso simular uma CPU lenta?

12

Estou quase terminando de codificar meu jogo de aplicativos da web. É executado em todos os navegadores modernos. No entanto, quero estabelecer alguns requisitos mínimos para isso.

Portanto, preciso de um Mac lento. No entanto, não tenho acesso a um Mac lento que possua um navegador moderno (IE 9+, Safari 5+, Opera 11+, Chrome, Firefox 4+).

Usando a ferramenta mencionada nesta pergunta , posso simular uma conexão lenta à Internet. Eu posso usar muita memória facilmente. No entanto, não tenho idéia de como simular uma CPU lenta sem recorrer ao underclocking.

Existe alguma maneira de diminuir temporariamente a CPU do meu Mac sem fazer underclock?

JavaAndCSharp
fonte
tosse Instale o Windows? : P
Russell

Respostas:

7

Uma solução é usar a virtualização para ter outra instância do Mac OS X em execução no seu computador. Muitos aplicativos de virtualização (como o Parallels Desktop ) permitem decidir quantos recursos uma instância pode ter (por exemplo, memória ou CPU). A Lion aumentou seu suporte à virtualização do Mac OS X.

Se você optar pelo Parallels, há um artigo útil sobre como configurar uma instância de outro Mac OS X Lion.

Sensível
fonte
Me bater por 20 segundos :)
penguinrob
Parece que este é o favorito da comunidade e a minha resposta favorita. Verificação verde para você!
JavaAndCSharp
1
Em Parallels parece que você só pode limitar o número de núcleos de CPU, mas não a velocidade de relógio ..
Timo
Parece que você pode estrangular o CPU usando CPUThrottle willnolan.com/cputhrottle/cputhrottle.html
Timo
6

Uma boa maneira é usar o utilitário de linha de comando cputhrottle, que permite definir um limite para a quantidade de CPU que um determinado processo pode usar.

Instale-o com (por exemplo) brew: brew install cputhrottle

Em seguida, escolha a quantidade percentual processador o processo para o seu navegador (e / ou o seu processo de conteúdo aba do navegador) pode usar: cputhrottle <PID> <PERCENTAGE>.
Você pode encontrar o ID do processo usando o aplicativo Activity Monitor.

Para finalizar o cputhrottle (que limita ativamente o processo enquanto estiver em execução), pressione Control- C.

Cykelero
fonte
1
Parece que cputhrottleo forumula foi removido do Homebrew em 17 de fevereiro de 2019 porque não funciona mais. Yosemite foi a última versão do macOS para oferecer suporte ao cputhrottle. github.com/Homebrew/homebrew-core/pull/36127 #
Sean Moubry
@ean Strange - o cputhrottle parece estar funcionando no meu Mac, embora eu esteja no Mojave com o SIP ativado. Eu poderia ter acabado baixando-o de outro lugar; você já tentou obtê-lo no site do autor? willnolan.com/cputhrottle/cputhrottle.html
Cykelero
4

Você sempre pode instalar o OS X em uma máquina virtual e configurar a máquina virtual para ter um processador mais lento, talvez.

penguinrob
fonte
2

Execute algumas instâncias de yes > /dev/null &. Cada instância fixará um núcleo em 100%, portanto, execute um para cada núcleo. Você também pode tentar nicereduzir os processos yes a uma prioridade mais alta ou diminuir a prioridade do navegador.

Cajunluke
fonte
1

Adicionar ciclos de suspensão ao loop principal ou partes do código que é executado com frequência é um bom primeiro passo. Em seguida, adicione alguns cálculos lentos / irrelevantes. Dependendo do que você deseja enfatizar, também é possível fazer matemática de ponteiro desajeitada ou converter variáveis ​​para retardar as coisas. Isso é uma coisa fácil de usar na hora de programar.

bmike
fonte
2
Pensando como um programador. Isso é útil; no entanto, quero encontrar a velocidade mínima do relógio na qual o jogo não modificado pode ser executado.
JavaAndCSharp
Mesmo quando você é desenvolvedor da Apple e leva o código para seus laboratórios de teste, onde você pode executá-lo em todos os tipos de hardware - crie uma boa margem de erro, pois muitas máquinas de usuários têm desempenho muito pior do que o melhor caso para mac. Entre o sistema de add-ons e modificações, questões de RAM, discos rígidos completos, etc ...
bmike