2010-12-21 41 views
3

有誰知道如何在Java中創建新的性能計數器(perfmon工具)在Java中創建性能計數器

例如:一個新的性能計數器,用於監視用戶操作的數量/持續時間。

我創建了C#這樣的性能計數器,這是很容易的,但是我找不到任何使用Java創建它的幫助......

+1

可能重複http://stackoverflow.com/questions/358129/java-app-performance-counters-viewed- in-perfmon) – 2010-12-21 14:39:09

回答

1

不知道你期待這個工具做的,但我會創造一些數據結構來記錄這些時間和次數一樣

class UserActionStats { 
    int count; 
    long durationMS; 
    long start = 0; 

    public void startAction() { 
     start = System.currentTimeMillis(); 
    } 
    public void endAction() { 
     durationMS += System.currentTimeMillis() - start; 
     count++; 
    } 
} 

用於這些集合可能看起來像

private static final Map<String, UserActionStats> map = 
     new HashMap<String, UserActionStats>(); 

public static UserActionStats forUser(String userName) { 
    synchronized(map) { 
     UserActionStats uas = map.get(userName); 
     if (uas == null) 
      map.put(userName, uas = new UserActionStats()); 
     return uas; 
    } 
} 
+0

你的durationMS不應該實際增加:start - System.currentTimeMillis(); – jzd 2010-12-21 14:41:27

3

如果你想發展你performan ce計數器與主代碼無關,您應該查看方面編程(AspectJ,Javassist)。

您可以在不修改主代碼的情況下將性能計數器插入所需的方法。