2009-02-27 12 views
13

Problema: ho una macchina per sviluppatori (leggi: veloce, molta memoria), ma l'utente ha una macchina degli utenti (leggi: lento, non molta memoria).Esiste un modo per limitare CPU/memoria di un processo?

posso simulare una rete lenta utilizzando Fiddler (http://www.fiddler2.com/fiddler2/) posso guardare come CPU viene utilizzato nel corso del tempo per un processo utilizzando Process Explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx).

Esiste un modo per limitare la quantità di CPU che può avere un processo o la quantità di memoria che può avere un processo per simulare in modo più efficace una macchina utente? (Al fine di isolare i problemi di prestazioni, per esempio)

Suppongo che potrei usare una VM, ma sto cercando qualcosa di un po 'più leggero.

Sto usando Windows XP, ma una soluzione per qualsiasi macchina Windows sarebbe il benvenuto. Grazie.

+0

+1 Sì mi piacerebbe sapere anche questo. –

risposta

5

L'SDK piattaforma utilizzata per venire con gli strumenti di stress per fare proprio questo ritorno ai bei vecchi tempi (STRESS.EXE, CPUSTRESS.EXE nel SDK), ma potrebbero essere ancora lì (controllare la piattaforma SDK e/o installazione di Visual Studio per questi due file - Purtroppo ho niether il PSDK né VS installati sulla macchina sto scrivendo da)

Altri strumenti:

  • memoria: prestazioni & affidabilità (ad esempio la manipolazione di allocazione della memoria non è riuscita.): può utilizzare EatMem
  • CPU: affidabilità & (ad es. condizioni di gara): può utilizzare CPU Burn, Prime95, ecc
  • handle (GDI, Utente): affidabilità (ad esempio gestione mancata allocazione di risorse GDI): ??? potrebbe dover scrivere il tuo, ma esaurendo gli handle GDI (le applicazioni GTK buggy di solito li mangeranno tutti fino a quando tutte le altre app sul sistema comincerebbero a cadere come mosche) è un vero test per qualsiasi app di Windows
  • disco: prestazioni & affidabilità (es disco movimentazione completa): DiskFiller, ecc

vedere anche this existing thread.

+0

Ho provato la masterizzazione della CPU, sembra funzionare bene. Però è un po 'come un martello. Non ho provato il eatmem però. Contrassegnato come risposta accettata. –

1

È possibile eseguire MemAlloc per masticare RAM, possibilmente alcune copie contemporaneamente.

1

ho trovato una questione connessa:

Set Windows process (or user) memory limit

La risposta accettata per la domanda ha un link a Windows API SetProcessWorkingSetSize, quindi non è esattamente uno strumento che può limitare la quantità di memoria che un processo poter usare.

In termini di modifica della quantità di risorse della CPU che un processo può utilizzare, se non si cura la granularità della limitazione per-core delle risorse, Task Manager può modificare l'affinità del processore di un processo.

In Task Manager, fare clic con il tasto destro del mouse su un processo e selezionare "Imposta affinità ...", quindi selezionare i nuclei del processore a cui il processo può essere assegnato.

Se la macchina di sviluppo ha molti core ma la macchina utente ne ha solo uno, quindi, piuttosto che consentire al processo di girare su tutti i core disponibili, impostare l'affinità del processore su un solo core.

3

AppVerifier dispone di una funzione di simulazione di risorse limitate.

Si potrebbe anche provare a impostare la priorità del processo in modo che sia molto bassa.

0

Non ha nulla a che fare con SetProcessWorkingSetSize

Basta utilizzare le API del kernel Win32 interne per limitare l'utilizzo della CPU

+0

Quali sono le opzioni disponibili per limitare l'utilizzo della CPU? –

Problemi correlati