Apakah ada stopwatch di Jawa? Di google saya hanya menemukan kode stopwatch yang tidak berfungsi - mereka selalu mengembalikan 0 milidetik.
Kode yang saya temukan ini tidak berfungsi tetapi saya tidak mengerti mengapa.
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;
}
//elaspsed time in milliseconds
public long getElapsedTime() {
long elapsed;
if (running) {
elapsed = (System.currentTimeMillis() - startTime);
} else {
elapsed = (stopTime - startTime);
}
return elapsed;
}
//elaspsed time in seconds
public long getElapsedTimeSecs() {
long elapsed;
if (running) {
elapsed = ((System.currentTimeMillis() - startTime) / 1000);
} else {
elapsed = ((stopTime - startTime) / 1000);
}
return elapsed;
}
}
currentTimeMillis()
untuk produksi, karena ini terkait dengan tanggal / waktu sistem dan tidak dijamin monoton (misalnya Anda bisa mendapatkan waktu berlalu yang negatif). Untuk mengukur penggunaan waktunanoTime()
- dijamin monoton dan ditujukan tepat untuk tujuan pengukuran. Lihat docs.oracle.com/javase/8/docs/api/java/lang/…Jawaban:
Anda akan menemukannya di
http://commons.apache.org/lang/
Ini disebut
Tapi itu kira-kira sama seperti milik Anda. Jika Anda ingin lebih presisi, gunakan
Lihat juga pertanyaan ini di sini:
Waktu mengukur overhead di Jawa
sumber
Gunakan kelas Guava
Stopwatch
.sumber
getStartTime()
, apache hilangisRunning()
ahhhhSekarang Anda dapat mencoba sesuatu seperti:
Outputnya ada dalam ISO 8601.
sumber
Musim semi menyediakan
org.springframework.util.StopWatch
Kelas yang elegan (modul inti pegas).sumber
Gunakan
System.currentTimeMillis()
untuk mendapatkan waktu mulai dan waktu akhir dan menghitung perbedaannya.Info selengkapnya ada di tutorial ini
sumber
Kode tidak berfungsi karena variabel yang sudah berlalu di
getElapsedTimeSecs()
bukan afloat
ataudouble
.sumber
Tidak ada utilitas Stopwatch bawaan tetapi pada JSR-310 (Java 8 Time) Anda dapat melakukan ini dengan mudah.
Saya belum mengukur ini dengan benar tetapi saya kira menggunakan Stopwatch Jambu lebih efektif.
sumber
coba http://introcs.cs.princeton.edu/java/stdlib/Stopwatch.java.html ini
itu sangat mudah
Kelas ini adalah bagian dari stdlib.jar
sumber
Sederhana di luar kotak kelas Stopwatch:
Pemakaian:
sumber
gunakan: com.google.common.base.Stopwatch, yang sederhana dan mudah.
contoh:
tugas ini membutuhkan 112 pabrik
sumber
coba ini
sumber
Coba ini:
Menggunakan:
sumber
Coba ini.
Pemakaian:
Menghibur:
sumber
currentTimeMillis()
terkait dengan tanggal / waktu sistem dan tidak dijamin monoton (mis. Anda bisa mendapatkan waktu berlalu yang negatif).System.nanoTime()
untuk selalu mendapatkan hasil yang benar.Performetrics menyediakan kelas Stopwatch yang nyaman, seperti yang Anda butuhkan. Itu dapat mengukur waktu jam dinding dan banyak lagi: itu juga mengukur waktu CPU (waktu pengguna dan waktu sistem) jika Anda perlu. Ini kecil, gratis dan Anda dapat mengunduh dari Maven Central. Informasi dan contoh lebih lanjut dapat ditemukan di sini: https://obvj.net/performetrics
Anda dapat mengonversi metrik ke satuan waktu apa pun (nanodetik, milidetik, detik, dll ...)
PS: Saya penulis alat.
sumber
Anda dapat menemukan yang nyaman di sini:
https://github.com/varra4u/utils4j/blob/master/src/main/java/com/varra/util/StopWatch.java
Pemakaian:
sumber
Coba ini.
Solusi Bekerja Sepenuhnya Stopwatch Java
Di sini Anda akan mendapatkan solusi yang berfungsi penuh.
Hanya cuplikan dari solusi yang ditautkan di atas:
Anda dapat membuat kelas seperti kode di bawah ini dan menggunakan metode start dan stop kelas ini sebelum dan setelah bagian kode, Anda ingin mengukur waktu yang dibutuhkan.
}
Terima kasih.
sumber