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?



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.


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.


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.


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.