簡體   English   中英

用Java創建性能計數器

[英]Creating Performance Counters in Java

有誰知道如何用Java創建一個新的性能計數器(perfmon工具)?

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

我在C#中創建了這樣的性能計數器,這很容易,但是我找不到任何有助於在Java中創建它的東西......

如果您想獨立於主代碼開發性能計數器,您應該查看方面編程( AspectJJavassist )。

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

不確定你期望這個工具做什么,但我會創建一些數據結構來記錄這些時間和計數

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;
    }
}

Java不能立即使用perfmon(但您應該在Solaris下看到DTrace)。

請參閱此問題以獲取建議: 在Perfmon中查看的Java應用程序性能計數器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM