2011-02-10 38 views
8

Di ': "correre myApp.jar con cpu = 800 e la memoria = 1024"Limitare la memoria e utilizzo della CPU dell'applicazione Java

Ive che fa di programmazione Java per molti anni ed è un succinti di fare questa domanda. Non so nemmeno se sia possibile o meno. E se sì, come?

Quello che voglio solo sapere è se è possibile impostare il massimo utilizzo della memoria e della CPU di un programma Java. All'improvviso ho pensato a questo perché di recente ho iniziato a sviluppare app mobili. Voglio sapere come si comporterà l'applicazione sul dispositivo che ha memoria e processore molto limitati.

vidi motori fisici con applicazioni demo che girano su browser o posso eseguire sul mio PC. Cosa succede se li eseguo su un dispositivo mobile? La performance sarà la stessa? Piuttosto che sviluppare un'app mobile di esempio per testare le prestazioni della libreria, preferisco eseguirla con una CPU e una memoria specifiche usando prima il mio PC.

Ho provato su Google a proposito ... tutto quello che ho trovato è stato il monitoraggio e l'ottimizzazione delle prestazioni. Potrei usare parole chiave sbagliate.

risposta

8

è possibile limitare l'uso della memoria opzione -Xmx da e si può limitare l'utilizzo della CPU impostando la priorità del processo e/o di affinità della CPU.

+0

Grazie bests. Lo proverò. – demotics2002

+2

Su linux, è possibile eseguire la JVM con affinità CPU specificata usando 'taskset (1)', che è tutt'altro che ovvio per molte persone. Non c'è modo di impostare l'affinità della CPU da una JVM run-of-the-mill. (puoi fare magia JNI, ma fare draghi.) – andersoj

+0

sì, non puoi impostare né affinità né priorità del processore con le opzioni java standard che conosco ... su Windows il comando di cui hai bisogno è avviato (su finestre a 32 bit non funziona 't avere l'opzione di affinità, però) – bestsss

1

In questo scenario potrebbe essere utile eseguire l'app su un emulatore Mobile (ad esempio Android).

Con questo è possibile emulare un dispositivo mobile con CPU/memoria specifica. Quindi, si dovrebbe ottenere prestazioni questo è paragonabile a un dispositivo che ha CPU più lento e meno RAM.

Android/Nokia emulatore è gratuito e disponibile per il download da sezioni di sviluppo dei siti Nokia/Google.

1

La JVM non ha alcun controllo l'utilizzo della CPU, né la priorità.

JVM ha il controllo sull'utilizzo della memoria max/min.

C'è una soluzione alternativa. È possibile eseguire ciascuna JVM in un numero distinto Docker container. Controlla la risorsa (memoria, CPU, rete, IO) per ogni contenitore. Questo è esattamente il valore aggiunto dei contenitori Docker.

Problemi correlati