Java'da kronometre nasıl yapılır?

Satisfying

Decapat
Katılım
4 Haziran 2019
Mesajlar
86
Çözümler
1
Yer
Ankara
Selamlar, Javada kronometre nasıl yapılabilir? Benim bulduklarımdan birkaçı:

Java:
System.currentTimeMillis()

Java:
System.nanoTime()

currentTimeMillis ile nanoTime'ın arasındaki fark nedir?

Ayrıca currentTimeMillis'e kısa bir örnek:

Java:
public class StopWatch {

  private long startTime = 0;
  private long stopTime = 0;
  private boolean running = false;


  public void start() {
    this.startTime = System.currentTimeMillis();
    this.running = true;
  }


  public void stop() {
    this.stopTime = System.currentTimeMillis();
    this.running = false;
  }


  // Milisaniye için geçen süre
  public long getElapsedTime() {
    long elapsed;
    if (running) {
      elapsed = (System.currentTimeMillis() - startTime);
    } else {
      elapsed = (stopTime - startTime);
    }
    return elapsed;
  }


  // Saniye için geçen süre
  public long getElapsedTimeSecs() {
    long elapsed;
    if (running) {
      elapsed = ((System.currentTimeMillis() - startTime) / 1000);
    } else {
      elapsed = ((stopTime - startTime) / 1000);
    }
    return elapsed;
  }
}
 
Son düzenleyen: Moderatör:
Biri milisaniye, digeri nanosaniye cinsinden veriyor. Aslinda aralarinda ciddi farklar da var:
System (Java Platform SE 8 )

StopWatch yapmis gibi duruyor gecen sure hesabini, isini gormuyor mu?
Teşekkürler, işimi görür.

Ayrıca benim bulduğum kadarıyla nanoTime daha hassas, kesin sonuçlar veriyormuş ama 100 işlemci gücü gibi bir şey kullanıyormuş. currentTimeMillis ise bazen yanlış sonuçlar veriyor ama 4-5 işlemci gücünde çalışıyormuş.
 

Hayir oyle bir sey yok, nano daha hizlidir iceride milisaniye donusumu yapmadigi icin ama her ikisi de dikkate almaya degmecek kadar hizlidir.

Her iki islemi de saniyenin milyonda birinden daha hizli calistiriyor JVM.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…