Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Aug 2002 16:03:08 +0800
From:      Huang wen hui <hwh@mail.gddsn.org.cn>
To:        "Bill Huey (Hui)" <billh@gnuppy.monkey.org>
Cc:        java <java@FreeBSD.ORG>
Subject:   Re: Hotspot vm is extremely slower  than nojit vm on current ?
Message-ID:  <3D5A0EBC.9060706@mail.gddsn.org.cn>
References:  <3D59C6A4.5020708@mail.gddsn.org.cn> <20020814030231.GA4285@gnuppy.monkey.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Bill Huey (Hui) :

>On Wed, Aug 14, 2002 at 10:55:32AM +0800, Huang wen hui wrote:
>  
>
>>hi,
>>Mostly hotspot vm is stable and fast, but I got problem with Thread.sleep.
>>Look at the following simple program, on current hotspot vm is extreamly
>>slow.
>>    
>>
>...
>  
>
>>^^^^^^
>>%~hwh/jre/bin/java -jar TestTimer.jar ; java -jar TestTimer.jar
>>query elapse time: 1354
>>query elapse time: 140221
>>^^^^^^
>>    
>>
>
>I could have blown it with the sleep math. Previously I multiplied the
>value of nanosleep by a 1000x more than it should be. ;)
>
>bill
>
>
>
>  
>
Do you mean you have fixed this bug? Would you mind send the patch to me ?


More info of this bug, if this is no sense, I'll apologize.
This bug occured  in hotspot compiler[1 2] vm, not core vm. and I 
simplify the test case:
The main thread elapse time is exactly as same as the timer sleep time.

%~hwh/jre/bin/java -version
java version "1.3.1-p7"
Java(TM) 2 Runtime Environment, Standard Edition (build 
1.3.1-p7-root-020727-22:30)
Java HotSpot(TM) Core VM (build 1.3.1-internal, interpreted mode)
%~hwh/jre/bin/java TestTimer
sleep time: 2006

%java -version
java version "1.3.1-p7"
Java(TM) 2 Runtime Environment, Standard Edition (build 
1.3.1-p7-root-020727-22:30)
Java HotSpot(TM) Client VM (build 1.3.1-internal, mixed mode)
%java TestTimer
sleep time: 100013



-----------------------------------------------------------------------------------------------------------------------
public class Timer extends Thread{
  private static ThreadGroup tGroup = new ThreadGroup("Timer");
  // Number of seconds in each timer cycle
  int m_cycle;

  private boolean bQuit = false;

  public Timer(int cycle){
      super(tGroup,"TimerThread");
      m_cycle = cycle;

    }

  public void run(){
      this.setName("TimerThread");
      // Loop until stopped
      while (!bQuit) {
        try {

          // Sleep for the clock cycle
          sleep(m_cycle * 1000);
        }
        catch (InterruptedException ex) {
        }
      }
    }

  public void quit() {
    bQuit = true;
  }
}


import java.util.*;

/**
 * Test freebsd Hotspot speed.
 */
public class TestTimer {
  Timer timer = new Timer(100);

  public TestTimer() {
    timer.start();
  }

  public void destoryTimer() {
    timer.quit();
  }

  public static void main(String[] args) throws Exception{
    TestTimer tt =new TestTimer();
    long now = new java.util.Date().getTime();
    Thread.sleep(2*1000);
    System.err.println("sleep time: "+ (new java.util.Date().getTime() - 
now));
    tt.destoryTimer();
  }
}




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-java" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D5A0EBC.9060706>