2016-10-23 1 views
0

Ich kam in eine Situation, die ich jede Methode Leistung in meinem Code in der Zeit zur Verfügung stellen muss.Brauchen Sie Hilfe zum Berechnen der Java-Methode Leistung

Es ist eine vielschichtige Anwendung und ich muss für jedes Niveau bieten. Wie

Class A.methodA() 
{ 
    Class B.methodB() 
     { 
      Class C.methodC() 
      { 
       //Time Taken 30 sec 
      } 
      //Time Taken 40 secs 
     } 
    //Time Taken 50 secs 
} 

ganze Betrieb in 50 Sekunden abgeschlossen.

So sollte ich einen Bericht erstellen. Gibt es einen Rahmen oder einen einfachen Weg, um die Startzeit und die Stoppzeit jeder Methode manuell zu verfolgen? Da ich neu in der Java-Entwicklung bin, ist es schwierig, dies leicht zu tun.

+1

Blick in Profilometer wie YourKit oder JProfiler – maasg

Antwort

1

Nicht sicher, was Sie meinen mit diesem Code, den Sie angegeben haben, da es nicht wie gültiger Java-Code aussieht (vielleicht verwechseln Sie Klassen mit Methoden?) Die einfachste Lösung ist, System.currentTimeMillis() zu verwenden. hier ist ein einfaches Beispiel:

public class Main { 
    public static void main(String[] args) throws IOException { 
     long t1 = System.currentTimeMillis(); 
     //some code you want to check 
     doOtherWork(); 
     long t2 = System.currentTimeMillis(); 
     System.out.println("Main time: " + (t2-t1)); 

    } 

    public static void doOtherWork(){ 
     long t1 = System.currentTimeMillis(); 
     //some code you want to check 
     evenMoreWork(); 
     long t2 = System.currentTimeMillis(); 
     System.out.println("doOtherWork time: " + (t2-t1)); 
    } 

    public static void evenMoreWork(){ 
     long t1 = System.currentTimeMillis(); 
     //some code you want to check 
     long t2 = System.currentTimeMillis(); 
     System.out.println("evenMoreWork time: " + (t2-t1)); 
    } 
} 

Denken sie daran, dass auch in der Methode Haupt verbrachte Zeit verbrachte Zeit in allen Methoden enthalten, die es genannt.

+0

Hey danke für die Hilfe. Aber ich habe das schon gemacht. Aber da es viele Methoden gibt, suche ich eine andere einfache Methode. – ConfusionMaster

+0

Wenn es Ausnahmen in den unteren Schichten gibt, wird Code nicht bis t2 reichen. – ConfusionMaster

0

Das Werkzeug, das Sie suchen, heißt "Profiler".

0

Bitte beachten Sie, dass die Art der Profilerstellung, die Sie verwenden, sich auf die Leistung Ihrer App auswirkt. Manchmal ist der Einfluss gering, manchmal wird er bemerkbar.

Am einfachsten ist es, eine Verbindung zu Ihrer Anwendung mit jvisualvm (es ist mit jdk gebündelt) oder einem anderen Profiler für Java. Hier ist ein Beispiel dafür, was das zeigen kann.

jvisualvm method profiling