2010-12-21 102 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)。

您可以在不修改主代码的情况下将性能计数器插入所需的方法。