Execution time - pomiar wykonywania operacji

0

Wkręciło mnie ostatnio troche w testowanie szybkości wykonywania pewnych "algorytmów" wywołań itp. oczywiście nie na poziomie jakimś mega zaawansowanym. Wydaje mi się zawsze że to co pisze można by było napisać krócej szybciej, może i inną techniką. Tak więc ostatnio robię tak, że pisze po starem [ocenił bym to: byle jak] a potem upraszczam, wycinam wyrzucam oczywiście tak aby kod nadal spełniał założenia i był czytelny. Tylko nie widze cyferek czy coś to dało w szybkości albo jeśli odczuwam zmiane to na ile "zmiany" te wpłynęły na szybkość wykonywania. Znalazłem na stacku

public class someClass
{
   public static void main(String[] args) // your app start point
   {
       long start = java.util.Calendar.getInstance().getTime();

       ... your stuff ...

       long end = java.util.Calendar.getInstance().getTime();
       System.out.println("it took this long to complete this stuff: " + (end - start) + "ms");
   }
}

Zastanawia mnie tylko klasa Calendar i czy jest może lepszy sposób na to?

0

Ja kiedyś robiłem tak:

long startTime = System.currentTimeMillis();  
...
long endTime = System.currentTimeMillis();
System.out.println("Total ms: " + (endTime - startTime) );

Jednak nie powiem Ci czy to lepsze czy gorsze rozwiązanie bo nie wiem. W każdym razie często polecane. :)

1

Jeszcze lepiej tak

long startTime = System.nanoTime();
// ...
long estimatedTime = System.nanoTime() - startTime;

1 użytkowników online, w tym zalogowanych: 0, gości: 1