¿Cómo puedo simular tener una CPU lenta?

12

Ya casi termino de codificar mi juego de aplicaciones web. Se ejecuta en todos los navegadores modernos. Sin embargo, quiero establecer algunos requisitos mínimos para ello.

Por lo tanto, necesito una Mac lenta. Sin embargo, no tengo acceso a una Mac lenta que tiene un navegador moderno (IE 9+, Safari 5+, Opera 11+, Chrome, Firefox 4+).

Usando la herramienta mencionada en esta pregunta , puedo simular una conexión lenta a Internet. Puedo usar mucha memoria fácilmente. Sin embargo, no tengo idea de cómo simular una CPU lenta sin recurrir al underclocking.

¿Hay alguna manera de hacer que la CPU de mi Mac se ralentice temporalmente sin un subclocking?

JavaAndCSharp
fuente
tos Instalar Windows? : P
Russell

Respuestas:

7

Una solución es usar la virtualización para tener otra instancia de Mac OS X ejecutándose en su computadora. Muchas aplicaciones de virtualización (como Parallels Desktop ) le permiten decidir cuántos recursos puede tener una instancia (por ejemplo, memoria o CPU). Lion aumentó su soporte para virtualizar Mac OS X.

Si decide utilizar Parallels, hay un artículo útil que describe cómo configurar una instancia de otro Mac OS X Lion.

Sensato
fuente
Golpéame
Parece que este es el favorito de la comunidad y mi respuesta favorita. ¡Cheque verde para ti!
JavaAndCSharp
1
En Parallels parece que solo se puede limitar el número de núcleos de CPU pero no la velocidad del reloj ..
Timo
Parece que puede estrangular la CPU usando CPUThrottle willnolan.com/cputhrottle/cputhrottle.html
Timo
6

Una buena manera es usar la utilidad de línea de comandos cputhrottle, que le permite establecer un límite a la cantidad de CPU que un proceso determinado puede usar.

Instálelo con (por ejemplo) brew: brew install cputhrottle

A continuación, elija la cantidad de porcentaje de procesador para el proceso de su navegador (y / o su contenido proceso pestaña del navegador) puede utilizar: cputhrottle <PID> <PERCENTAGE>.
Puede encontrar la ID del proceso utilizando la aplicación Activity Monitor.

Para finalizar cputhrottle (que acelera activamente el proceso mientras se ejecuta), presione Control- C.

Cykelero
fuente
1
Parece que cputhrottleel foro se eliminó de Homebrew el 17 de febrero de 2019 porque ya no funciona. Yosemite fue la última versión de macOS para admitir cputhrottle. github.com/Homebrew/homebrew-core/pull/36127
Sean Moubry
@sean Strange: parece que cputhrottle funciona en mi Mac, aunque estoy en Mojave con SIP habilitado. Sin embargo, podría haber terminado descargándolo de otro lado; ¿Has intentado obtenerlo del sitio del autor? willnolan.com/cputhrottle/cputhrottle.html
Cykelero el
4

Siempre puede instalar OS X en una máquina virtual y configurar la máquina virtual para que tenga un procesador más lento, tal vez.

pingüino
fuente
2

Ejecute algunas instancias de yes > /dev/null &. Cada instancia vinculará un núcleo al 100%, así que ejecute uno para cada núcleo. También puede intentar hacer que nicelos procesos yes tengan una prioridad más alta o reducir la prioridad del navegador.

Cajunluke
fuente
1

Agregar ciclos de suspensión al bucle principal o partes del código que se ejecuta a menudo es un buen primer paso. A continuación, agregue algunos cálculos que son lentos / irrelevantes. Dependiendo de lo que desee enfatizar, también puede hacer algunos cálculos de punteros incómodos o emitir variables para ralentizar las cosas. Esto es algo fácil de poner en la bolsa de arena al programar.

bmike
fuente
2
Pensando como un programador. Esto es útil; sin embargo, quiero encontrar la velocidad de reloj mínima a la que se puede ejecutar el juego sin modificar.
JavaAndCSharp
Incluso cuando es un desarrollador de Apple y lleva el código a sus laboratorios de prueba donde puede ejecutarlo en todo tipo de hardware, construya con un buen margen de error ya que muchas máquinas de usuario funcionan mucho peor que una Mac de mejor caso. Entre complementos y modificaciones del sistema, problemas de ram, discos duros completos, etc.
bmike