Come posso simulare avere una CPU lenta?


12

Ho quasi finito di programmare il mio gioco webapp. Funziona su tutti i browser moderni. Tuttavia, voglio stabilire alcuni requisiti minimi per questo.

Quindi, ho bisogno di un Mac lento. Tuttavia, non ho accesso a un Mac lento con un browser moderno (IE 9+, Safari 5+, Opera 11+, Chrome, Firefox 4+).

Utilizzando lo strumento menzionato in questa domanda , posso simulare una connessione Internet lenta. Posso usare facilmente molta memoria. Tuttavia, non ho idea di come simulare una CPU lenta senza ricorrere al underclocking.

Esiste un modo per rallentare temporaneamente la CPU del mio Mac senza effettuare il sottoblocco?



tosse Installare Windows? : P
Russell,

Risposte:


7

Una soluzione è utilizzare la virtualizzazione per avere un'altra istanza di Mac OS X in esecuzione sul tuo computer. Molte applicazioni di virtualizzazione (come Parallels Desktop ) consentono di decidere quante risorse può avere un'istanza (ad es. Memoria o CPU). Lion ha aumentato il supporto per la virtualizzazione di Mac OS X.

Se decidi di andare con Parallels, c'è un utile articolo per descrivere come configurare un'istanza di un altro Mac OS X Lion.



Sembra che sia la risposta preferita della community sia la mia risposta preferita. Assegno verde per te!
JavaAndCSharp

1
In Parallels sembra che tu possa limitare solo il numero di core della CPU ma non la velocità di clock ..
Timo

Sembra che tu possa limitare la CPU usando CPUThrottle willnolan.com/cputhrottle/cputhrottle.html
Timo

6

Un buon metodo consiste nell'utilizzare l'utilità della riga di comando cputhrottle, che consente di impostare un limite alla quantità di CPU consentita da un determinato processo.

Installalo con (ad esempio) brew: brew install cputhrottle

Quindi scegliere quanta percentuale del processore del processo per il browser (e / o il vostro processo di contenuti scheda del browser) possono utilizzare: cputhrottle <PID> <PERCENTAGE>.
È possibile trovare l'ID processo utilizzando l'app Activity Monitor.

Per terminare cputhrottle (che rallenta attivamente il processo finché è in esecuzione), premere Control- C.


1
Sembra che cputhrottleil forumula sia stato rimosso da Homebrew il 17 febbraio 2019 perché non funziona più. Yosemite era l'ultima versione di macOS a supportare cputhrottle. github.com/Homebrew/homebrew-core/pull/36127
Sean Moubry

@sean Strange — cputhrottle sembra funzionare sul mio Mac, anche se sono su Mojave con SIP abilitato. Potrei aver finito per scaricarlo da un'altra parte, però; hai provato a ottenerlo dal sito dell'autore? willnolan.com/cputhrottle/cputhrottle.html
Cykelero

4

Puoi sempre installare OS X in una macchina virtuale e impostare la macchina virtuale su un processore più lento, forse.


2

Esegui alcune istanze di yes > /dev/null &. Ogni istanza peg un core al 100%, quindi esegui uno per ogni core. È inoltre possibile provare a riportare nicei processi sì a una priorità più alta o a ridurre la priorità del browser.


1

Aggiungere cicli di sospensione al ciclo principale o parti del codice che viene eseguito spesso è un buon primo passo. Successivamente, aggiungi alcuni calcoli che sono lenti / irrilevanti. A seconda di ciò che vuoi sottolineare, puoi anche fare un po 'di matematica puntuale o lanciare variabili per rallentare le cose. Questa è una cosa facile da sandbag durante la programmazione.


2
Pensare come un programmatore. Questo è utile; tuttavia, voglio trovare la velocità di clock minima alla quale può funzionare il gioco non modificato.
JavaAndCSharp

Anche quando sei uno sviluppatore Apple e porti il ​​codice nei loro laboratori di prova dove puoi eseguirlo su qualsiasi tipo di hardware, crea un buon margine di errore poiché molte macchine utente hanno prestazioni molto peggiori di un mac migliore. Tra componenti aggiuntivi di sistema e modifiche, problemi di RAM, dischi rigidi completi, ecc ...
bmike
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.