ugrás a tartalomhoz

Java dual processzoron

mocsar · 2007. Feb. 8. (Cs), 14.48
Nincs valakinek valami ötlete arra, hogy egy VM-en belül hogyan lehetne a dual processzor mindkét magját kihasználni?
Jó lenne, ha két szálat két magon futtathatnék.
 
1

Amúgy nem?

vbence · 2007. Feb. 8. (Cs), 16.09
Én úgy gondolnám, kettő (vagy több) szál esetén az oprendszer ütemezi a szálakat, nem a VM, szóval fele királyságom rá, hogy alapból így van.

Hogyan próbáltad ki a dolgot?
3

FreeBSD 6.1 (SMB) + Kaffe = ok

vbence · 2007. Feb. 8. (Cs), 18.56
Egy kétmagos pentiumon kipróbáltam (persze több magot támogató kerlennel) a Kaffe virtuális gépben. A top-nál az 1 thread esetén 50% os cpu használat 2 threadnél 100% lett. A process CPU használatára meg 200%-ot írt, úgyhogy ebben az összeállításban szépen kiosztja a szálakat.

Majd még kipróbálom a diablo-val, ha lesz időm..

Amúgy egy ilyen cuccal teszteltem: TTest.java

class TTest {                                                                                                 
    public static void main(String[] args) {                                                                  
        TestThread t1 = new TestThread();                                                                     
        TestThread t2 = new TestThread();                                                                     
                                                                                                              
        t1.start();                                                                                           
        t2.start();                                                                                           
    }                                                                                                         
}                                                                                                             
                                                                                                              
class TestThread extends Thread {                                                                             
    public void run() {                                                                                       
        long i = 0;                                                                                           
        while (true)                                                                                          
            i++;                                                                                              
    }                                                                                                         
}                                                                                                             
2

Java thread

tolmi · 2007. Feb. 8. (Cs), 17.50
tudtommal ez elég kiforratlan terület, de például itt egy kis okosság hozzá:
How to tune Java on multi-core 64bit CPUs
AFAIK a JVM az alkalmazásthread-eket nem kimondottan tudja elosztani több core-on vagy CPU-n.