我有一個測試類與public void httpcall()
方法,我需要得到這個方法的執行時間。爲了做到這一點,我在調用它之前和之後使用了System.nanoTime()
。我從那段時間獲得執行時間。註解一個方法來打開性能跟蹤
代碼片段:
public class Test{
public void httpcall(){
try {
HttpResponse rs = HttpClientUtil.get("http://192.169.1.2:9090/plugins/restapi/v1/users/9223370580466120397/roster",RestOpenfire.ACCEPT, "8V9BUNA0f1gNQI3S");
} catch (Exception e) {
System.out.println("Error : "+e);
}
}
public static void main(String[] args) {
Test test=new Test();
long startTime = System.nanoTime();
test.httpcall();
long endTime = System.nanoTime();
long duration = (endTime-startTime);
System.out.println("Execution Time : "+duration);
}
}
我想做出這樣@Time
註解,使該方法的執行時間,像..
@Time
public void httpcall(){
try {
HttpResponse rs = HttpClientUtil.get("http://192.169.1.2:9090/plugins/restapi/v1/users/9223370580466120397/roster",
RestOpenfire.ACCEPT, "8V9BUNA0f1gNQI3S");
} catch (Exception e) {
System.out.println("Error : " + e);
}
}
我怎麼能這樣做?
註解不**做任何事情。他們只是元數據。您需要一個運行時框架來獲取對象,檢查對象方法中的註釋,調用方法並測量它們的時間。有這樣的框架。 Google for AOP。 –
感謝您的建議。我可以在Spring框架中使用它嗎?春季AOP? –
是的,Spring有AOP支持。我甚至可以肯定已經有了插入Spring的度量庫,並且可以實現你想要達到的目標。 –