Taki wzorzec do łapania czasu czasu, wykonania, w sposób oczywisty ohydny
long t0 = System.nanoTime();
Type t = doSomething()
long t9 = System.nanoTime();
(t9-t0)/1000 -> tu mam mikrosekundy ...
Prawdę mówiąc w różnych projektach "coś" próbowaliśmy, ale nic z tego co pamiętam nie wzbudziło takiego entuzjazmu, aby powtarzać w następnym.
Oczywiście mocne wdrożenie aspektowe by dało wyniki, ale to strzelanie z armaty do wróbla.
Przyjmijmy, że nie chodzi o żadne kontenery, myślimy Javą SE.
Któraś koncepcja ...
class MyMonitor<T> {
final long t0 = System.nanoTime();
long t9;
public T fire( T val ) {
T x = val;
t9 = System.nanoTime();
}
public long ms(){
return (t9-t0) / 1000000;
}
}
MyMonitor<cośik> mm = new MyMonitor();
var cosik = mm.fire( doSomething() );
mm.ms() ; // mamy
Ciągle mam przeczucie, że istnieje sprytne rozwiązanie.
W C bym to napisał, z ohydnymi makrami, a w Javie nie wychodzi nic ładnego