Tue, 22 Aug 2006 16:00:30 +0200
Suller András <2naus@freemail.hu>
Re: [Java lista] Re: thread sleep kérdés
javalist@javasite.bme.hu írta:
> *** Felado: Köteles Ferenc <fecuska@freemail.hu> ***
>
> On Tue, 22 Aug 2006 14:13:18 +0200 (CEST)
> javalist@javasite.bme.hu wrote:
>
>> Nem beszélve arról, hogy Windows alatt legjobb tudomásom szerint nem
>> lehet 10ms-nál rövidebb időt mérni. Vagy legalábbis a javaval nem
>> tudsz annál rövidebb ideig sleepelni.
> linux alatt fog futni a dolog...
>
Nem hiszek nektek, ezért leteszteltem :)
Ez volt a teszt:
long t0 = System.currentTimeMillis();
for(int i=0; i< 1000; i++) {
Thread.sleep(1);
}
long t1 = System.currentTimeMillis();
System.out.println("time: "+(t1-t0)+" msec");
Ez windows-on (xp) is és linuxon (debian) is majdnem pontosan 2000
msec-et írt ki.
Csodálkoztam is rajta, hogy vajon miért nem 1000-hez közeli ez a szám,
ezért próbálgattam, hogy a sleep(1)-et növelgettem (sleep(2),
sleep(3),...), és a tapasztalat azt mutatja, hogy 1000 msec-el tart
tovább a művelet, mint ahogy vártam volna.
Magyarul: egy Thread.sleep() hívás 1 msec plusz kötséggel jár.
Viszont kíváncsi lennék, hogy ez a teszt program ugyanilyen eredményeket
produkál-e más architektúrákon? Akinek van rá lehetősége, kérem hogy
próbálja ki, és tegye közzé, mert érdekelne :)
Én 32 bites intel környezetben mértem.
Köszi,
psmith
nem vagyok feliratkozva