changeset 178:20d76a0c828a

Bug 3249: Accumulated GC time should be show in SnapShot summary tab Reviewed-by: ykubota https://github.com/HeapStats/heapstats/pull/52
author Yasumasa Suenaga <yasuenag@gmail.com>
date Mon, 05 Dec 2016 12:29:44 +0900
parents 50fbff3f775e
children b74225fe6334
files ChangeLog analyzer/core/src/main/java/jp/co/ntt/oss/heapstats/container/snapshot/SummaryData.java analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SummaryController.java analyzer/fx/src/main/resources/snapshotResources_en.properties analyzer/fx/src/main/resources/snapshotResources_ja.properties
diffstat 5 files changed, 30 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Dec 04 20:41:37 2016 +0900
+++ b/ChangeLog	Mon Dec 05 12:29:44 2016 +0900
@@ -1,3 +1,7 @@
+2016-12-05  Yasumasa Suenaga <yasuenag@gmail.com>
+
+	* Bug 3249: Accumulated GC time should be show in SnapShot summary tab
+
 2016-12-04  Yasumasa Suenaga <yasuenag@gmail.com>
 
 	* Bug 3255: [BACKOUT] Bug 3254 for HeapStats 2.0
--- a/analyzer/core/src/main/java/jp/co/ntt/oss/heapstats/container/snapshot/SummaryData.java	Sun Dec 04 20:41:37 2016 +0900
+++ b/analyzer/core/src/main/java/jp/co/ntt/oss/heapstats/container/snapshot/SummaryData.java	Mon Dec 05 12:29:44 2016 +0900
@@ -70,6 +70,8 @@
 
     private final long latestMetaspaceUsage;
 
+    private final long totalGCTime;
+
     private final long maxGCTime;
 
     private final long maxSnapshotSize;
@@ -118,6 +120,7 @@
                 .collect(MaxSummaryStatistics::new,
                         MaxSummaryStatistics::accept,
                         MaxSummaryStatistics::combine);
+        totalGCTime = statistics.getTotalGCTime();
         maxGCTime = statistics.getMaxGCTime();
         maxSnapshotSize = statistics.getMaxSnapshotSize();
         maxEntryCount = statistics.getMaxEntryCount();
@@ -169,6 +172,15 @@
     }
 
     /**
+     * Get total Full GC time.
+     * 
+     * @return Total GC time
+     */
+    public long getTotalGCTime() {
+        return totalGCTime;
+    }
+
+    /**
      * Get maximum value of GC time.
      *
      * @return Maximum value of GC time
@@ -206,6 +218,8 @@
 
     private class MaxSummaryStatistics {
 
+        private long totalGCTime;
+
         private long maxGCTime;
 
         private long maxSnapshotSize;
@@ -213,23 +227,30 @@
         private long maxEntryCount;
 
         public MaxSummaryStatistics() {
+            totalGCTime = 0;
             maxGCTime = 0;
             maxSnapshotSize = 0;
             maxEntryCount = 0;
         }
 
         public void accept(SnapShotHeader header) {
+            totalGCTime +=  header.getGcTime();
             maxGCTime = Math.max(maxGCTime, header.getGcTime());
             maxSnapshotSize = Math.max(maxSnapshotSize, header.getSnapShotSize());
             maxEntryCount = Math.max(maxEntryCount, header.getNumEntries());
         }
 
         public void combine(MaxSummaryStatistics other) {
+            totalGCTime += other.totalGCTime;
             maxGCTime = Math.max(maxGCTime, other.maxGCTime);
             maxSnapshotSize = Math.max(maxSnapshotSize, other.maxSnapshotSize);
             maxEntryCount = Math.max(maxEntryCount, other.maxEntryCount);
         }
 
+        public long getTotalGCTime() {
+            return totalGCTime;
+        }
+
         public long getMaxGCTime() {
             return maxGCTime;
         }
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SummaryController.java	Sun Dec 04 20:41:37 2016 +0900
+++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SummaryController.java	Mon Dec 05 12:29:44 2016 +0900
@@ -121,6 +121,7 @@
                     new SummaryData.SummaryDataEntry(resource.getString("summary.heap.usage"), String.format("%.1f MB", data.getLatestHeapUsage() / 1024.0d / 1024.0d)),
                     new SummaryData.SummaryDataEntry(resource.getString("summary.metaspace.usage"), String.format("%.1f MB", data.getLatestMetaspaceUsage() / 1024.0d / 1024.0d)),
                     new SummaryData.SummaryDataEntry(resource.getString("summary.gc.time"), String.format("%d ms", data.getMaxGCTime())),
+                    new SummaryData.SummaryDataEntry(resource.getString("summary.gc.totaltime"), String.format("%d ms", data.getTotalGCTime())),
                     new SummaryData.SummaryDataEntry(resource.getString("summary.snapshot.size"), String.format("%.1f KB", data.getMaxSnapshotSize() / 1024.0d)),
                     new SummaryData.SummaryDataEntry(resource.getString("summary.snapshot.entrycount"), Long.toString(data.getMaxEntryCount()))
             ));
--- a/analyzer/fx/src/main/resources/snapshotResources_en.properties	Sun Dec 04 20:41:37 2016 +0900
+++ b/analyzer/fx/src/main/resources/snapshotResources_en.properties	Mon Dec 05 12:29:44 2016 +0900
@@ -40,7 +40,8 @@
 summary.snapshot.size = Max SnapShot size
 summary.snapshot.entrycount = Max entry count
 summary.gc.count = GC Count
-summary.gc.time = Max GCTime
+summary.gc.time = Max major GC time
+summary.gc.totaltime = Total major GC time
 summary.heap.usage = Latest Java heap usage
 summary.metaspace.usage = Latest Metaspace usage
 
--- a/analyzer/fx/src/main/resources/snapshotResources_ja.properties	Sun Dec 04 20:41:37 2016 +0900
+++ b/analyzer/fx/src/main/resources/snapshotResources_ja.properties	Mon Dec 05 12:29:44 2016 +0900
@@ -40,7 +40,8 @@
 summary.snapshot.size = \u6700\u5927\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u30b5\u30a4\u30ba
 summary.snapshot.entrycount = \u6700\u5927\u30a8\u30f3\u30c8\u30ea\u6570
 summary.gc.count = GC\u56de\u6570
-summary.gc.time = \u6700\u5927GC\u6642\u9593
+summary.gc.time = \u6700\u5927\u30e1\u30b8\u30e3\u30fcGC\u6642\u9593
+summary.gc.totaltime = \u7dcf\u30e1\u30b8\u30e3\u30fcGC\u6642\u9593
 summary.heap.usage = \u6700\u7d42Java\u30d2\u30fc\u30d7\u4f7f\u7528\u91cf
 summary.metaspace.usage =\u6700\u7d42\u30e1\u30bf\u30b9\u30da\u30fc\u30b9\u4f7f\u7528\u91cf