Czy w Javie jest stoper?
Czy w Javie jest stoper? W Google znajduję tylko kod do stoperów, które nie działają - zawsze zwracają 0 milisekund.
Ten kod, który znalazłem, nie działa, ale nie rozumiem dlaczego.
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;
}
}
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
16 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
http://commons.apache.org/lang
http://commons.apache.org/lang/
/
To się nazywa
Ale robi mniej więcej to samo, co twoje. Jeśli potrzebujesz większej precyzji, użyj
Zobacz także to pytanie tutaj:
Czas zmierzyć narzut w Javie
https://coderoad.ru/5640409/
Anonimowy użytkownik
Potwierdzenie od:
klasa guavahttps://google.github.io/guava ... .html
.
Obiekt mierzący upływający czas w nanosekundach. Jest to przydatne w przypadku
mierzyć czas, który upłynął, używając tej klasy zamiast bezpośrednich wywołań funkcji z kilku powodów:
Anonimowy użytkownik
Potwierdzenie od:
Dane wyjściowe są zgodne z ISO 8601.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Więcej szczegółów w tym przewodniku
http://www.vogella.com/article ... .html
Anonimowy użytkownik
Potwierdzenie od:
Nie przeprowadziłem tego poprawnie testu porównawczego, ale sugerowałbym, że użycie stopera z guawy jest bardziej wydajne.
Anonimowy użytkownik
Potwierdzenie od:
http://introcs.cs.princeton.ed ... .html
http://introcs.cs.princeton.ed ... .html
to jest bardzo proste
Ta klasa jest częścią stdlib.jar
Anonimowy użytkownik
Potwierdzenie od:
próba:
zadanie to zajęło 112 młynów
Anonimowy użytkownik
Potwierdzenie od:
Za pomocą:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Posługiwać się:
Anonimowy użytkownik
Potwierdzenie od:
Za pomocą:
Konsola:
Anonimowy użytkownik
Potwierdzenie od:
Performetrics
zapewnia poręczną klasę stopera, dokładnie taką, jakiej potrzebujesz. Może mierzyć czas zegara ściennego i nie tylko: mierzy również czas procesora (czas użytkownika i czas systemowy), jeśli trzeba.
Jest mały, darmowy i możesz go pobrać z Maven Central.
Więcej informacji i przykładów można znaleźć tutaj:
https://obvj.net/performetrics
https://obvj.net/performetrics
Możesz konwertować metryki na dowolną jednostkę czasu (nanosekundy, milisekundy, sekundy itp.)
PS: Jestem autorem tego narzędzia.
Anonimowy użytkownik
Potwierdzenie od:
https://github.com/varra4u/uti ... .java
https://github.com/varra4u/uti ... .java
Za pomocą:
Anonimowy użytkownik
Potwierdzenie od:
Całkowicie działające rozwiązanie Java Stopwatch
https://coderichjava.blogspot. ... .html
Otrzymasz tutaj w pełni działające rozwiązanie.
Tylko fragment powyższego rozwiązania:
Możesz utworzyć klasę podobną do poniższego kodu i użyć tej metody do uruchamiania i zatrzymywania klasy przed i po sekcji kodu, dla której chcesz zmierzyć upływ czasu.
}
Podziękować.