diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/JvmRun.java b/src/main/java/org/eclipselabs/garbagecat/domain/JvmRun.java index 07428a1b..dd287142 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/JvmRun.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/JvmRun.java @@ -351,8 +351,9 @@ public long getStoppedTimeThroughput() { } /** - * Ratio of GC to Stopped Time as a percent rounded to the nearest integer. 100 means all stopped time spent doing - * GC. 0 means none of the stopped time was due to GC. + * + * @return Ratio of GC to Stopped Time as a percent rounded to the nearest integer. 100 means all stopped time spent + * doing GC. 0 means none of the stopped time was due to GC. */ public long getGcStoppedRatio() { long gcStoppedRatio; @@ -370,8 +371,6 @@ public long getGcStoppedRatio() { /** * Do analysis. - * - * @return A List of analysis points based on the JVM options and data. */ public void doAnalysis() { @@ -413,12 +412,11 @@ public void doAnalysis() { } } - // 7) Check for concurrent mode failure by logging event type. Going forward, this will be identified by a - // trigger, not a new logging event. This is needed to deal with legacy code that unfortunately created many - // unnecessary events instead of preparsing them into their component events. + // 7) Check for concurrent mode failure by logging event type. This is needed to deal with legacy code that does + // not understand triggers and creates many unnecessary events instead of preparsing them into their component + // events and/or triggers. if (!analysisKeys.contains(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE)) { - if (getEventTypes().contains(LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE) - || getEventTypes().contains(LogEventType.PAR_NEW_PROMOTION_FAILED_CMS_CONCURRENT_MODE_FAILURE) + if (getEventTypes().contains(LogEventType.PAR_NEW_PROMOTION_FAILED_CMS_CONCURRENT_MODE_FAILURE) || getEventTypes().contains(LogEventType.PAR_NEW_CONCURRENT_MODE_FAILURE_PERM_DATA) || getEventTypes().contains(LogEventType.PAR_NEW_PROMOTION_FAILED_CMS_CONCURRENT_MODE_FAILURE) || getEventTypes() @@ -634,7 +632,7 @@ private void doJvmOptionsAnalysis() { /** * Determine if the JVM run used the G1 collector. * - * @param eventType + * @param eventTypes * Log entry LogEventType. * @return True if any LogEventType is G1, false otherwise. */ @@ -654,7 +652,7 @@ public boolean isG1Collector(List eventTypes) { /** * Determine if the JVM run used the CMS collector. * - * @param eventType + * @param eventTypes * Log entry LogEventType. * @return True if any LogEventType is G1, false otherwise. */ diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/UnknownEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/UnknownEvent.java index b0e45c5d..e4b5fdff 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/UnknownEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/UnknownEvent.java @@ -31,6 +31,7 @@ public class UnknownEvent implements LogEvent { * Default constructor. * * @param logEntry + * The log entry for the event. */ public UnknownEvent(String logEntry) { super(); diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ApplicationConcurrentTimeEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ApplicationConcurrentTimeEvent.java index f7567d2c..47e2388a 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ApplicationConcurrentTimeEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ApplicationConcurrentTimeEvent.java @@ -30,7 +30,6 @@ * This option is redundant, as the same information can be calculated from the GC logging timestamps and durations. * Therefore, advise against using it, as it adds overhead with no analysis value. *

- *

* *

Example Logging

* diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ApplicationStoppedTimeEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ApplicationStoppedTimeEvent.java index cca4962d..cab0437b 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ApplicationStoppedTimeEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ApplicationStoppedTimeEvent.java @@ -40,6 +40,7 @@ * *

* Other JVM operations that require a safepoint: + *

* - *

* *

Example Logging

* @@ -75,7 +75,7 @@ * *

* 2) Stopping threads information added JDK8 update 40: - *

+ *

* *
  * 0.147: Total time for which application threads were stopped: 0.0000921 seconds, Stopping threads took: 0.0000190 seconds
@@ -113,7 +113,10 @@ public class ApplicationStoppedTimeEvent implements LogEvent {
     private static Pattern pattern = Pattern.compile(ApplicationStoppedTimeEvent.REGEX);
 
     /**
-     * Create application stopped time logging event from log entry.
+     * Create event from log entry.
+     * 
+     * @param logEntry
+     *            The log entry for the event.
      */
     public ApplicationStoppedTimeEvent(String logEntry) {
         this.logEntry = logEntry;
@@ -130,8 +133,11 @@ public ApplicationStoppedTimeEvent(String logEntry) {
      * Alternate constructor. Create application stopped time event from values.
      * 
      * @param logEntry
+     *            The log entry for the event.
      * @param timestamp
+     *            The time when the GC event happened in milliseconds after JVM startup.
      * @param duration
+     *            The elapsed clock time for the GC event in microseconds (rounded).
      */
     public ApplicationStoppedTimeEvent(String logEntry, long timestamp, int duration) {
         this.logEntry = logEntry;
diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsInitialMarkEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsInitialMarkEvent.java
index 7e48b9bc..1c15a928 100644
--- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsInitialMarkEvent.java
+++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsInitialMarkEvent.java
@@ -83,7 +83,10 @@ public class CmsInitialMarkEvent implements BlockingEvent, TriggerData, CmsColle
     private static Pattern pattern = Pattern.compile(CmsInitialMarkEvent.REGEX);
 
     /**
-     * Create CMS Initial Mark logging event from log entry.
+     * Create event from log entry.
+     * 
+     * @param logEntry
+     *            The log entry for the event.
      */
     public CmsInitialMarkEvent(String logEntry) {
         this.logEntry = logEntry;
@@ -99,8 +102,11 @@ public CmsInitialMarkEvent(String logEntry) {
      * Alternate constructor. Create CMS Initial Mark from values.
      * 
      * @param logEntry
+     *            The log entry for the event.
      * @param timestamp
+     *            The time when the GC event happened in milliseconds after JVM startup.
      * @param duration
+     *            The elapsed clock time for the GC event in milliseconds.
      */
     public CmsInitialMarkEvent(String logEntry, long timestamp, int duration) {
         this.logEntry = logEntry;
diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsRemarkEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsRemarkEvent.java
index da3fc314..d477dd48 100644
--- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsRemarkEvent.java
+++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsRemarkEvent.java
@@ -91,9 +91,10 @@ public class CmsRemarkEvent implements BlockingEvent, CmsCollection, TriggerData
     private static Pattern pattern = Pattern.compile(CmsRemarkEvent.REGEX);
 
     /**
-     * Create CMS Remark logging event from log entry.
+     * Create event from log entry.
      * 
      * @param logEntry
+     *            The log entry for the event.
      */
     public CmsRemarkEvent(String logEntry) {
         this.logEntry = logEntry;
@@ -110,8 +111,11 @@ public CmsRemarkEvent(String logEntry) {
      * Alternate constructor. Create CMS Remark logging event from values.
      * 
      * @param logEntry
+     *            The log entry for the event.
      * @param timestamp
+     *            The time when the GC event happened in milliseconds after JVM startup.
      * @param duration
+     *            The elapsed clock time for the GC event in milliseconds.
      */
     public CmsRemarkEvent(String logEntry, long timestamp, int duration) {
         this.logEntry = logEntry;
diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsRemarkWithClassUnloadingEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsRemarkWithClassUnloadingEvent.java
index 3406e741..2ce2cd5a 100644
--- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsRemarkWithClassUnloadingEvent.java
+++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsRemarkWithClassUnloadingEvent.java
@@ -30,16 +30,16 @@
  * A {@link org.eclipselabs.garbagecat.domain.jdk.CmsRemarkEvent} with the -XX:+CMSClassUnloadingEnabled
  * JVM option enabled to allow perm gen / metaspace collections. The concurrent low pause collector does not allow for
  * class unloading by default.
+ * 

* *

Example Logging

- *

* *

* 1) JDK 1.6: *

* *
- * 76694.727: [GC[YG occupancy: 80143 K (153344 K)]76694.727: [Rescan (parallel) , 0.0574180 secs]76694.785: [weak refs processing, 0.0170540 secs]76694.802: [class unloading, 0.0363010 secs]76694.838: [scrub symbol & string tables, 0.0276600 secs] [1 CMS-remark: 443542K(4023936K)] 523686K(4177280K), 0.1446880 secs]
+ * 76694.727: [GC[YG occupancy: 80143 K (153344 K)]76694.727: [Rescan (parallel) , 0.0574180 secs]76694.785: [weak refs processing, 0.0170540 secs]76694.802: [class unloading, 0.0363010 secs]76694.838: [scrub symbol & string tables, 0.0276600 secs] [1 CMS-remark: 443542K(4023936K)] 523686K(4177280K), 0.1446880 secs]
  * 
* *

@@ -47,7 +47,7 @@ *

* *

- * 2) JDK 1.7 with "scrub symbol table" and "scrub string table" vs. "scrub symbol & string tables": + * 2) JDK 1.7 with "scrub symbol table" and "scrub string table" vs. "scrub symbol & string tables": *

* *
@@ -111,9 +111,10 @@ public class CmsRemarkWithClassUnloadingEvent implements BlockingEvent, TriggerD
     private static Pattern pattern = Pattern.compile(CmsRemarkWithClassUnloadingEvent.REGEX);
 
     /**
-     * Create CMS Remark with class unloading logging event from log entry.
+     * Create event from log entry.
      * 
      * @param logEntry
+     *            The log entry for the event.
      */
     public CmsRemarkWithClassUnloadingEvent(String logEntry) {
         this.logEntry = logEntry;
@@ -130,8 +131,11 @@ public CmsRemarkWithClassUnloadingEvent(String logEntry) {
      * Alternate constructor. Create CMS Remark with class unloading logging event from values.
      * 
      * @param logEntry
+     *            The log entry for the event.
      * @param timestamp
+     *            The time when the GC event happened in milliseconds after JVM startup.
      * @param duration
+     *            The elapsed clock time for the GC event in milliseconds
      */
     public CmsRemarkWithClassUnloadingEvent(String logEntry, long timestamp, int duration) {
         this.logEntry = logEntry;
diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsSerialOldConcurrentModeFailureEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsSerialOldConcurrentModeFailureEvent.java
deleted file mode 100644
index 62471a65..00000000
--- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsSerialOldConcurrentModeFailureEvent.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/**********************************************************************************************************************
- * garbagecat                                                                                                         *
- *                                                                                                                    *
- * Copyright (c) 2008-2016 Red Hat, Inc.                                                                              *
- *                                                                                                                    * 
- * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse *
- * Public License v1.0 which accompanies this distribution, and is available at                                       *
- * http://www.eclipse.org/legal/epl-v10.html.                                                                         *
- *                                                                                                                    *
- * Contributors:                                                                                                      *
- *    Red Hat, Inc. - initial API and implementation                                                                  *
- *********************************************************************************************************************/
-package org.eclipselabs.garbagecat.domain.jdk;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipselabs.garbagecat.domain.BlockingEvent;
-import org.eclipselabs.garbagecat.domain.OldCollection;
-import org.eclipselabs.garbagecat.domain.OldData;
-import org.eclipselabs.garbagecat.domain.PermCollection;
-import org.eclipselabs.garbagecat.domain.PermData;
-import org.eclipselabs.garbagecat.domain.TriggerData;
-import org.eclipselabs.garbagecat.domain.YoungData;
-import org.eclipselabs.garbagecat.util.jdk.JdkMath;
-import org.eclipselabs.garbagecat.util.jdk.JdkRegEx;
-import org.eclipselabs.garbagecat.util.jdk.JdkUtil;
-
-/**
- * 

- * CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE - *

- * - *

- * A concurrent mode failure event indicates that the concurrent collection of the old generation did not finish before - * the old generation became full. The JVM initiates a full GC in an attempt to free up space using the - * {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldEvent} old generation collector. - *

- * - *

- * The concurrent low pause collector measures the rate at which the the old generation is filling and the amount of - * time between collections and uses this historical data to calculate when to start the concurrent collection (plus - * adds some padding) so that it will finish just in time before the old generation becomes full. - *

- * - *

- * This happens because there is not enough space in the old generation to support the rate of promotion from the young - * generation. Possible causes: - *

    - *
  1. The heap is too small.
  2. - *
  3. There is a change in application behavior (e.g. a load increase) that causes the young promotion rate to exceed - * historical data. If this is the case, the concurrent mode failures will happen near the change in behavior, then - * after a few collections the CMS collector will adjust based on the new promotion rate. Performance will suffer for a - * short period until the CMS collector recalibrates. The -XX:CMSInitiatingOccupancyFraction=NN (default - * 92) JVM option can be used to handle changes in application behavior; however, the tradeoff is that there will be - * more collections.
  4. - *
  5. The application has large variances in object allocation rates, causing large variances in young generation - * promotion rates, leading to the CMS collector not being able to accurately predict the time between collections. The - * -XX:CMSIncrementalSafetyFactor=NN (default 10) JVM option can be used to start the concurrent collection - * NN% sooner than the calculated time.
  6. - *
  7. There is premature promotion from the young to the old generation, causing the old generation to fill up with - * short-lived objects. The default value for -XX:MaxTenuringThreshold for the CMS collector is 0, meaning - * that objects surviving a young collection are immediately promoted to the old generation. Add the following JVM - * option to allow more time for objects to expire in the young generation: -XX:MaxTenuringThreshold=32. - *
  8. - *
  9. If the old generation has available space, the cause is likely fragmentation. Fragmentation can be avoided by - * increasing the heap size.
  10. - *
- *

- * - *

Example Logging

- * - *

- * 1) Logging on single line where some logging appears to be missing, as evidenced by an extra right bracket: - *

- * - *
- * 28282.075: [Full GC 28282.075 (concurrent mode failure): 1179601K->1179648K(1179648K), 10.7510650 secs] 1441361K->1180553K(1441600K), [CMS Perm : 71172K->71171K(262144K)], 10.7515460 secs]
- * 
- * - *

- * 2) Logging on single line with balanced brackets: - *

- * - *
- * 6942.991: [Full GC 6942.991: [CMS (concurrent mode failure): 907264K->907262K(907264K), 11.8579830 secs] 1506304K->1202006K(1506304K), [CMS Perm : 92801K->92800K(157352K)], 11.8585290 secs] [Times: user=11.80 sys=0.06, real=11.85 secs]
- * 
- * - * @author Mike Millson - * @author jborelo - */ -public class CmsSerialOldConcurrentModeFailureEvent implements BlockingEvent, OldCollection, PermCollection, YoungData, - OldData, PermData, TriggerData, CmsCollection { - - /** - * Regular expressions defining the logging. - */ - private static final String REGEX = "^" + JdkRegEx.TIMESTAMP + ": \\[Full GC " + JdkRegEx.TIMESTAMP - + "(: \\[CMS)? \\(" + JdkRegEx.TRIGGER_CONCURRENT_MODE_FAILURE + "\\): " + JdkRegEx.SIZE + "->" - + JdkRegEx.SIZE + "\\(" + JdkRegEx.SIZE + "\\), " + JdkRegEx.DURATION + "\\] " + JdkRegEx.SIZE + "->" - + JdkRegEx.SIZE + "\\(" + JdkRegEx.SIZE + "\\), \\[CMS Perm : " + JdkRegEx.SIZE + "->" + JdkRegEx.SIZE - + "\\(" + JdkRegEx.SIZE + "\\)\\], " + JdkRegEx.DURATION + "\\]" + JdkRegEx.TIMES_BLOCK + "?[ ]*$"; - - private static Pattern pattern = Pattern.compile(REGEX); - - /** - * The log entry for the event. Can be used for debugging purposes. - */ - private String logEntry; - - /** - * The elapsed clock time for the GC event in milliseconds (rounded). - */ - private int duration; - - /** - * The time when the GC event happened in milliseconds after JVM startup. - */ - private long timestamp; - - /** - * Young generation size (kilobytes) at beginning of GC event. - */ - private int young; - - /** - * Young generation size (kilobytes) at end of GC event. - */ - private int youngEnd; - - /** - * Available space in young generation (kilobytes). Equals young generation allocation minus one survivor space. - */ - private int youngAvailable; - - /** - * Old generation size (kilobytes) at beginning of GC event. - */ - private int old; - - /** - * Old generation size (kilobytes) at end of GC event. - */ - private int oldEnd; - - /** - * Space allocated to old generation (kilobytes). - */ - private int oldAllocation; - - /** - * Permanent generation size (kilobytes) at beginning of GC event. - */ - private int permGen; - - /** - * Permanent generation size (kilobytes) at end of GC event. - */ - private int permGenEnd; - - /** - * Space allocated to permanent generation (kilobytes). - */ - private int permGenAllocation; - - /** - * The trigger for the GC event. - */ - private String trigger; - - /** - * Create ParNew detail logging event from log entry. - */ - public CmsSerialOldConcurrentModeFailureEvent(String logEntry) { - this.logEntry = logEntry; - Matcher matcher = pattern.matcher(logEntry); - if (matcher.find()) { - timestamp = JdkMath.convertSecsToMillis(matcher.group(1)).longValue(); - trigger = matcher.group(3); - old = Integer.parseInt(matcher.group(4)); - oldEnd = Integer.parseInt(matcher.group(5)); - oldAllocation = Integer.parseInt(matcher.group(6)); - int totalBegin = Integer.parseInt(matcher.group(8)); - young = totalBegin - old; - int totalEnd = Integer.parseInt(matcher.group(9)); - youngEnd = totalEnd - oldEnd; - int totalAllocation = Integer.parseInt(matcher.group(10)); - youngAvailable = totalAllocation - oldAllocation; - permGen = Integer.parseInt(matcher.group(11)); - permGenEnd = Integer.parseInt(matcher.group(12)); - permGenAllocation = Integer.parseInt(matcher.group(13)); - duration = JdkMath.convertSecsToMillis(matcher.group(14)).intValue(); - } - } - - /** - * Alternate constructor. Create ParNew detail logging event from values. - * - * @param logEntry - * @param timestamp - * @param duration - */ - public CmsSerialOldConcurrentModeFailureEvent(String logEntry, long timestamp, int duration) { - this.logEntry = logEntry; - this.timestamp = timestamp; - this.duration = duration; - } - - public String getLogEntry() { - return logEntry; - } - - public int getDuration() { - return duration; - } - - public long getTimestamp() { - return timestamp; - } - - public int getYoungOccupancyInit() { - return young; - } - - public int getYoungOccupancyEnd() { - return youngEnd; - } - - public int getYoungSpace() { - return youngAvailable; - } - - public int getOldOccupancyInit() { - return old; - } - - public int getOldOccupancyEnd() { - return oldEnd; - } - - public int getOldSpace() { - return oldAllocation; - } - - public String getName() { - return JdkUtil.LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE.toString(); - } - - public int getPermOccupancyInit() { - return permGen; - } - - public int getPermOccupancyEnd() { - return permGenEnd; - } - - public int getPermSpace() { - return permGenAllocation; - } - - public String getTrigger() { - return trigger; - } - - /** - * Determine if the logLine matches the logging pattern(s) for this event. - * - * @param logLine - * The log line to test. - * @return true if the log line matches the event pattern, false otherwise. - */ - public static final boolean match(String logLine) { - return pattern.matcher(logLine).matches(); - } -} diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsSerialOldEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsSerialOldEvent.java index 63619834..14cf3234 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsSerialOldEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/CmsSerialOldEvent.java @@ -44,7 +44,7 @@ *

* *
- * 5.980: [Full GC 5.980: [CMS: 5589K->5796K(122880K), 0.0889610 secs] 11695K->5796K(131072K), [CMS Perm : 13140K->13124K(131072K)], 0.0891270 secs]
+ * 5.980: [Full GC 5.980: [CMS: 5589K->5796K(122880K), 0.0889610 secs] 11695K->5796K(131072K), [CMS Perm : 13140K->13124K(131072K)], 0.0891270 secs]
  * 
* *

@@ -52,7 +52,7 @@ *

* *
- * 2.928: [Full GC (System) 2.929: [CMS: 0K->6501K(8218240K), 0.2525532 secs] 66502K->6501K(8367360K), [CMS Perm : 16640K->16623K(524288K)], 0.2527331 secs]
+ * 2.928: [Full GC (System) 2.929: [CMS: 0K->6501K(8218240K), 0.2525532 secs] 66502K->6501K(8367360K), [CMS Perm : 16640K->16623K(524288K)], 0.2527331 secs]
  * 
* *

@@ -62,13 +62,13 @@ * *

  * raw:
- * 2013-12-09T16:43:09.366+0000: 1504.625: [Full GC2013-12-09T16:43:09.366+0000: 1504.625: [CMS: 1172695K->840574K(1549164K), 3.7572507 secs] 1301420K->840574K(1855852K), [CMS Perm : 226817K->226813K(376168K)], 3.7574584 secs] [Times: user=3.74 sys=0.00, real=3.76 secs]
+ * 2013-12-09T16:43:09.366+0000: 1504.625: [Full GC2013-12-09T16:43:09.366+0000: 1504.625: [CMS: 1172695K->840574K(1549164K), 3.7572507 secs] 1301420K->840574K(1855852K), [CMS Perm : 226817K->226813K(376168K)], 3.7574584 secs] [Times: user=3.74 sys=0.00, real=3.76 secs]
  * 
  * 
* *
  * preprocessed:
- * 1504.625: [Full GC1504.625: [CMS: 1172695K->840574K(1549164K), 3.7572507 secs] 1301420K->840574K(1855852K), [CMS Perm : 226817K->226813K(376168K)], 3.7574584 secs] [Times: user=3.74 sys=0.00, real=3.76 secs]
+ * 1504.625: [Full GC1504.625: [CMS: 1172695K->840574K(1549164K), 3.7572507 secs] 1301420K->840574K(1855852K), [CMS Perm : 226817K->226813K(376168K)], 3.7574584 secs] [Times: user=3.74 sys=0.00, real=3.76 secs]
  * 
* *

@@ -77,8 +77,7 @@ * *

  * raw:
- * 2013-12-09T16:43:09.366+0000: 1504.625: [Full GC2013-12-09T16:43:09.366+0000: 1504.625: [CMS: 1172695K->840574K(1549164K), 3.7572507 secs] 1301420K->840574K(1855852K), [CMS Perm : 226817K->226813K(376168K)], 3.7574584 secs] [Times: user=3.74 sys=0.00, real=3.76 secs]
- * 
+ * 2013-12-09T16:43:09.366+0000: 1504.625: [Full GC2013-12-09T16:43:09.366+0000: 1504.625: [CMS: 1172695K->840574K(1549164K), 3.7572507 secs] 1301420K->840574K(1855852K), [CMS Perm : 226817K->226813K(376168K)], 3.7574584 secs] [Times: user=3.74 sys=0.00, real=3.76 secs]
  * 
* * @author Mike Millson @@ -96,7 +95,7 @@ public class CmsSerialOldEvent extends SerialOldEvent implements TriggerData, Cm */ private static final String REGEX = "^" + JdkRegEx.TIMESTAMP + ": \\[Full GC( )?(\\((" + JdkRegEx.TRIGGER_SYSTEM_GC + "|" + JdkRegEx.TRIGGER_ALLOCATION_FAILURE + ")\\) )?" + JdkRegEx.TIMESTAMP - + ": \\[CMS(bailing out to foreground collection)?( \\((" + JdkRegEx.TRIGGER_CONCURRENT_MODE_FAILURE + + "(: \\[CMS)?(bailing out to foreground collection)?( \\((" + JdkRegEx.TRIGGER_CONCURRENT_MODE_FAILURE + ")\\))?( \\(" + JdkRegEx.TRIGGER_CONCURRENT_MODE_FAILURE + "\\)\\[YG occupancy: " + JdkRegEx.SIZE + " \\(" + JdkRegEx.SIZE + "\\)\\]" + JdkRegEx.TIMESTAMP + ": \\[Rescan \\(parallel\\) , " + JdkRegEx.DURATION + "\\]" + JdkRegEx.TIMESTAMP + ": \\[weak refs processing, " + JdkRegEx.DURATION + "\\]" @@ -110,7 +109,10 @@ public class CmsSerialOldEvent extends SerialOldEvent implements TriggerData, Cm private static Pattern pattern = Pattern.compile(CmsSerialOldEvent.REGEX); /** - * Create CMS logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public CmsSerialOldEvent(String logEntry) { @@ -118,25 +120,24 @@ public CmsSerialOldEvent(String logEntry) { Matcher matcher = pattern.matcher(logEntry); if (matcher.find()) { super.setTimestamp(JdkMath.convertSecsToMillis(matcher.group(1)).longValue()); - super.setOldOccupancyInit(Integer.parseInt(matcher.group(21))); - super.setOldOccupancyEnd(Integer.parseInt(matcher.group(22))); - super.setOldSpace(Integer.parseInt(matcher.group(23))); - int totalBegin = Integer.parseInt(matcher.group(25)); - super.setYoungOccupancyInit(totalBegin - super.getOldOccupancyInit()); - int totalEnd = Integer.parseInt(matcher.group(26)); - super.setYoungOccupancyEnd(totalEnd - super.getOldOccupancyEnd()); - int totalAllocation = Integer.parseInt(matcher.group(27)); - super.setYoungSpace(totalAllocation - super.getOldSpace()); - super.setPermOccupancyInit(Integer.parseInt(matcher.group(29))); - super.setPermOccupancyEnd(Integer.parseInt(matcher.group(30))); - super.setPermSpace(Integer.parseInt(matcher.group(31))); - super.setDuration(JdkMath.convertSecsToMillis(matcher.group(33)).intValue()); - if (matcher.group(9) != null) { - trigger = matcher.group(9); + if (matcher.group(10) != null) { + trigger = matcher.group(10); } else { - trigger = matcher.group(4); } + super.setOldOccupancyInit(Integer.parseInt(matcher.group(22))); + super.setOldOccupancyEnd(Integer.parseInt(matcher.group(23))); + super.setOldSpace(Integer.parseInt(matcher.group(24))); + int totalBegin = Integer.parseInt(matcher.group(26)); + super.setYoungOccupancyInit(totalBegin - super.getOldOccupancyInit()); + int totalEnd = Integer.parseInt(matcher.group(27)); + super.setYoungOccupancyEnd(totalEnd - super.getOldOccupancyEnd()); + int totalAllocation = Integer.parseInt(matcher.group(28)); + super.setYoungSpace(totalAllocation - super.getOldSpace()); + super.setPermOccupancyInit(Integer.parseInt(matcher.group(30))); + super.setPermOccupancyEnd(Integer.parseInt(matcher.group(31))); + super.setPermSpace(Integer.parseInt(matcher.group(32))); + super.setDuration(JdkMath.convertSecsToMillis(matcher.group(34)).intValue()); } } @@ -144,8 +145,11 @@ public CmsSerialOldEvent(String logEntry) { * Alternate constructor. Create CMS logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public CmsSerialOldEvent(String logEntry, long timestamp, int duration) { super.setLogEntry(logEntry); diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1CleanupEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1CleanupEvent.java index 7c3bd868..132a3a3a 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1CleanupEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1CleanupEvent.java @@ -38,7 +38,7 @@ *

* *
- * 18.650: [GC cleanup 297M->236M(512M), 0.0014690 secs]
+ * 18.650: [GC cleanup 297M->236M(512M), 0.0014690 secs]
  * 
* *

@@ -46,7 +46,7 @@ *

* *
- * 2010-02-26T08:31:51.990-0600: [GC cleanup 297M->236M(512M), 0.0014690 secs]
+ * 2010-02-26T08:31:51.990-0600: [GC cleanup 297M->236M(512M), 0.0014690 secs]
  * 
* *

@@ -54,7 +54,7 @@ *

* *
- * 2010-02-26T08:31:51.990-0600: [GC cleanup 297M->236M(512M), 0.0014690 secs]
+ * 2010-02-26T08:31:51.990-0600: [GC cleanup 297M->236M(512M), 0.0014690 secs]
  * 
* * @author Mike Millson @@ -102,7 +102,10 @@ public class G1CleanupEvent implements BlockingEvent, CombinedData, G1Collection private int combinedAvailable; /** - * Create detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public G1CleanupEvent(String logEntry) { this.logEntry = logEntry; @@ -120,8 +123,11 @@ public G1CleanupEvent(String logEntry) { * Alternate constructor. Create detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public G1CleanupEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1ConcurrentEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1ConcurrentEvent.java index 2244d641..8f9275aa 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1ConcurrentEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1ConcurrentEvent.java @@ -73,7 +73,7 @@ *

* *
- * 27744.494: [GC concurrent-mark-start], 0.3349320 secs] 10854M->9765M(26624M) [Times: user=0.98 sys=0.00, real=0.33 secs]
+ * 27744.494: [GC concurrent-mark-start], 0.3349320 secs] 10854M->9765M(26624M) [Times: user=0.98 sys=0.00, real=0.33 secs]
  * 
* *

@@ -89,7 +89,7 @@ *

* *
- * 8.556: [GC concurrent-string-deduplication, 906.5K->410.2K(496.3K), avg 54.8%, 0.0162924 secs]
+ * 8.556: [GC concurrent-string-deduplication, 906.5K->410.2K(496.3K), avg 54.8%, 0.0162924 secs]
  * 
* * @author Mike Millson @@ -121,7 +121,10 @@ public class G1ConcurrentEvent implements LogEvent, G1Collection { private long timestamp; /** - * Create detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public G1ConcurrentEvent(String logEntry) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1FullGCEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1FullGCEvent.java index 48a60484..e3992ad1 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1FullGCEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1FullGCEvent.java @@ -42,7 +42,7 @@ *

* *
- * 5060.152: [Full GC (System.gc()) 2270M->2038M(3398M), 5.8360430 secs]
+ * 5060.152: [Full GC (System.gc()) 2270M->2038M(3398M), 5.8360430 secs]
  * 
* *

@@ -50,7 +50,7 @@ *

* *
- * 2010-02-26T08:31:51.990-0600: [Full GC (System.gc()) 2270M->2038M(3398M), 5.8360430 secs]
+ * 2010-02-26T08:31:51.990-0600: [Full GC (System.gc()) 2270M->2038M(3398M), 5.8360430 secs]
  * 
* *

@@ -58,7 +58,7 @@ *

* *
- * 105.151: [Full GC (System.gc()) 5820M->1381M(30G), 5.5390169 secs] 5820M->1382M(30720M) [Times: user=5.76 sys=1.00, real=5.53 secs]
+ * 105.151: [Full GC (System.gc()) 5820M->1381M(30G), 5.5390169 secs] 5820M->1382M(30720M) [Times: user=5.76 sys=1.00, real=5.53 secs]
  * 
* * @author Mike Millson @@ -117,7 +117,10 @@ public class G1FullGCEvent implements BlockingEvent, TriggerData, CombinedData, private int combinedAvailable; /** - * Create detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public G1FullGCEvent(String logEntry) { this.logEntry = logEntry; @@ -136,8 +139,11 @@ public G1FullGCEvent(String logEntry) { * Alternate constructor. Create detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public G1FullGCEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1MixedPause.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1MixedPause.java index 54cb142e..0d367dfa 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1MixedPause.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1MixedPause.java @@ -40,7 +40,7 @@ *

* *
- * 1.305: [GC pause (mixed) 102M->24M(512M), 0.0254200 secs]
+ * 1.305: [GC pause (mixed) 102M->24M(512M), 0.0254200 secs]
  * 
* *

@@ -48,7 +48,7 @@ *

* *
- * 2010-02-26T08:31:51.990-0600: [GC pause (mixed) 102M->24M(512M), 0.0254200 secs]
+ * 2010-02-26T08:31:51.990-0600: [GC pause (mixed) 102M->24M(512M), 0.0254200 secs]
  * 
* *

@@ -56,7 +56,7 @@ *

* *
- * 2973.338: [GC pause (G1 Evacuation Pause) (mixed), 0.0457502 secs] 13210M->11571M(30720M) [Times: user=0.19 sys=0.00, real=0.05 secs]
+ * 2973.338: [GC pause (G1 Evacuation Pause) (mixed), 0.0457502 secs] 13210M->11571M(30720M) [Times: user=0.19 sys=0.00, real=0.05 secs]
  * 
* *

@@ -64,7 +64,7 @@ *

* *
- * 3082.652: [GC pause (mixed), 0.0762060 secs] 12083M->9058M(26624M) [Times: user=0.30 sys=0.00, real=0.08 secs]
+ * 3082.652: [GC pause (mixed), 0.0762060 secs] 12083M->9058M(26624M) [Times: user=0.30 sys=0.00, real=0.08 secs]
  * 
* * @author Mike Millson @@ -139,7 +139,10 @@ public class G1MixedPause implements BlockingEvent, CombinedData, TriggerData, G private String trigger; /** - * Create detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public G1MixedPause(String logEntry) { this.logEntry = logEntry; @@ -176,8 +179,11 @@ public G1MixedPause(String logEntry) { * Alternate constructor. Create detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public G1MixedPause(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1RemarkEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1RemarkEvent.java index c94ff5ae..db09c07e 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1RemarkEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1RemarkEvent.java @@ -76,7 +76,10 @@ public class G1RemarkEvent implements BlockingEvent, G1Collection { private long timestamp; /** - * Create detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public G1RemarkEvent(String logEntry) { this.logEntry = logEntry; @@ -91,8 +94,11 @@ public G1RemarkEvent(String logEntry) { * Alternate constructor. Create detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public G1RemarkEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1YoungInitialMarkEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1YoungInitialMarkEvent.java index 092155f9..c8e4fd79 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1YoungInitialMarkEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1YoungInitialMarkEvent.java @@ -38,7 +38,7 @@ *

* *
- * 1.305: [GC pause (young) (initial-mark) 102M->24M(512M), 0.0254200 secs]
+ * 1.305: [GC pause (young) (initial-mark) 102M->24M(512M), 0.0254200 secs]
  * 
* *

@@ -46,7 +46,7 @@ *

* *
- * 2010-02-26T08:31:51.990-0600: [GC pause (young) (initial-mark) 102M->24M(512M), 0.0254200 secs]
+ * 2010-02-26T08:31:51.990-0600: [GC pause (young) (initial-mark) 102M->24M(512M), 0.0254200 secs]
  * 
* *

@@ -54,7 +54,7 @@ *

* *
- * 2970.268: [GC pause (G1 Evacuation Pause) (young) (initial-mark), 0.0698627 secs] 13926M->13824M(30720M) [Times: user=0.28 sys=0.00, real=0.08 secs]
+ * 2970.268: [GC pause (G1 Evacuation Pause) (young) (initial-mark), 0.0698627 secs] 13926M->13824M(30720M) [Times: user=0.28 sys=0.00, real=0.08 secs]
  * 
* * @author Mike Millson @@ -130,7 +130,10 @@ public class G1YoungInitialMarkEvent implements BlockingEvent, CombinedData, Tri private String trigger; /** - * Create detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public G1YoungInitialMarkEvent(String logEntry) { this.logEntry = logEntry; @@ -162,8 +165,11 @@ public G1YoungInitialMarkEvent(String logEntry) { * Alternate constructor. Create detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public G1YoungInitialMarkEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1YoungPause.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1YoungPause.java index 2b812a0b..89d4a8ab 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1YoungPause.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/G1YoungPause.java @@ -40,7 +40,7 @@ *

* *
- * 1.305: [GC pause (young) 102M->24M(512M), 0.0254200 secs]
+ * 1.305: [GC pause (young) 102M->24M(512M), 0.0254200 secs]
  * 
* *

@@ -48,7 +48,7 @@ *

* *
- * 2010-02-26T08:31:51.990-0600: [GC pause (young) 102M->24M(512M), 0.0254200 secs]
+ * 2010-02-26T08:31:51.990-0600: [GC pause (young) 102M->24M(512M), 0.0254200 secs]
  * 
* *

@@ -56,7 +56,7 @@ *

* *
- * 1.807: [GC pause (young), 0.00290200 secs] 29M->2589K(59M) [Times: user=0.01 sys=0.00, real=0.01 secs]
+ * 1.807: [GC pause (young), 0.00290200 secs] 29M->2589K(59M) [Times: user=0.01 sys=0.00, real=0.01 secs]
  * 
* *

@@ -64,7 +64,7 @@ *

* *
- * 27997.968: [GC pause (young) (to-space exhausted), 0.1208740 secs] 19354M->18227M(26624M) [Times: user=0.41 sys=0.02, real=0.12 secs]
+ * 27997.968: [GC pause (young) (to-space exhausted), 0.1208740 secs] 19354M->18227M(26624M) [Times: user=0.41 sys=0.02, real=0.12 secs]
  * 
* * @author Mike Millson @@ -138,7 +138,10 @@ public class G1YoungPause implements BlockingEvent, YoungCollection, CombinedDat private String trigger; /** - * Create detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public G1YoungPause(String logEntry) { this.logEntry = logEntry; @@ -175,8 +178,11 @@ public G1YoungPause(String logEntry) { * Alternate constructor. Create detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public G1YoungPause(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderCommandLineFlagsEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderCommandLineFlagsEvent.java index 2cd289ec..58948e2c 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderCommandLineFlagsEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderCommandLineFlagsEvent.java @@ -72,7 +72,10 @@ public class HeaderCommandLineFlagsEvent implements LogEvent { private long timestamp; /** - * Create CommandLineFlags detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public HeaderCommandLineFlagsEvent(String logEntry) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderMemoryEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderMemoryEvent.java index a8650f0b..f9fa22cd 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderMemoryEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderMemoryEvent.java @@ -54,7 +54,10 @@ public class HeaderMemoryEvent implements LogEvent { private long timestamp; /** - * Create CommandLineFlags detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public HeaderMemoryEvent(String logEntry) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderVersionEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderVersionEvent.java index 1ba8b0f3..8ded80f4 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderVersionEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/HeaderVersionEvent.java @@ -66,7 +66,10 @@ public class HeaderVersionEvent implements LogEvent { private long timestamp; /** - * Create CommandLineFlags detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public HeaderVersionEvent(String logEntry) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/LogRotation.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/LogRotation.java index 3f48e285..7cd54089 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/LogRotation.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/LogRotation.java @@ -55,7 +55,10 @@ public class LogRotation implements LogEvent { private long timestamp; /** - * Create CommandLineFlags detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public LogRotation(String logEntry) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewCmsConcurrentEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewCmsConcurrentEvent.java index 7f2cc11a..74d70b8b 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewCmsConcurrentEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewCmsConcurrentEvent.java @@ -36,7 +36,7 @@ *

Example Logging

* *
- * 2210.281: [GC 2210.282: [ParNew2210.314: [CMS-concurrent-abortable-preclean: 0.043/0.144 secs]: 212981K->3156K(242304K), 0.0364435 secs] 4712182K->4502357K(4971420K), 0.0368807 secs]
+ * 2210.281: [GC 2210.282: [ParNew2210.314: [CMS-concurrent-abortable-preclean: 0.043/0.144 secs]: 212981K->3156K(242304K), 0.0364435 secs] 4712182K->4502357K(4971420K), 0.0368807 secs]
  * 
* * @author Mike Millson @@ -101,7 +101,10 @@ public class ParNewCmsConcurrentEvent implements BlockingEvent, YoungCollection, private int oldAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewCmsConcurrentEvent(String logEntry) { this.logEntry = logEntry; @@ -125,8 +128,11 @@ public ParNewCmsConcurrentEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewCmsConcurrentEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewCmsSerialOldEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewCmsSerialOldEvent.java index fc6263f5..fab8c321 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewCmsSerialOldEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewCmsSerialOldEvent.java @@ -43,7 +43,7 @@ *

* *
- * 42782.086: [GC 42782.086: [ParNew: 254464K->7680K(254464K), 0.2853553 secs]42782.371: [Tenured: 1082057K->934941K(1082084K), 6.2719770 secs] 1310721K->934941K(1336548K), 6.5587770 secs]
+ * 42782.086: [GC 42782.086: [ParNew: 254464K->7680K(254464K), 0.2853553 secs]42782.371: [Tenured: 1082057K->934941K(1082084K), 6.2719770 secs] 1310721K->934941K(1336548K), 6.5587770 secs]
  * 
* *

@@ -51,7 +51,7 @@ *

* *
- * 6.102: [GC6.102: [ParNew: 19648K->2176K(19648K), 0.0184470 secs]6.121: [Tenured: 44849K->25946K(44864K), 0.2586250 secs] 60100K->25946K(64512K), [Perm : 43759K->43759K(262144K)], 0.2773070 secs] [Times: user=0.16 sys=0.01, real=0.28 secs]
+ * 6.102: [GC6.102: [ParNew: 19648K->2176K(19648K), 0.0184470 secs]6.121: [Tenured: 44849K->25946K(44864K), 0.2586250 secs] 60100K->25946K(64512K), [Perm : 43759K->43759K(262144K)], 0.2773070 secs] [Times: user=0.16 sys=0.01, real=0.28 secs]
  * 
* * @author Mike Millson @@ -133,7 +133,10 @@ public class ParNewCmsSerialOldEvent private int permGenAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewCmsSerialOldEvent(String logEntry) { this.logEntry = logEntry; @@ -163,8 +166,11 @@ public ParNewCmsSerialOldEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewCmsSerialOldEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewConcurrentModeFailureEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewConcurrentModeFailureEvent.java index e49685a6..d2ff6ec5 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewConcurrentModeFailureEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewConcurrentModeFailureEvent.java @@ -46,6 +46,7 @@ *

* This happens because there is not enough space in the old generation to support the rate of promotion from the young * generation. Possible causes: + *

*
    *
  1. The heap is too small.
  2. *
  3. There is a change in application behavior (e.g. a load increase) that causes the young promotion rate to exceed @@ -66,7 +67,6 @@ *
  4. If the old generation has available space, the cause is likely fragmentation. Fragmentation can be avoided by * increasing the heap size.
  5. *
- *

* *

Example Logging

* @@ -75,17 +75,17 @@ *

* *
- * 26683.209: [GC 26683.210: [ParNew: 261760K->261760K(261952K), 0.0000130 secs]26683.210: [CMS (concurrent mode failure): 1141548K->1078465K(1179648K), 7.3835370 secs] 1403308K->1078465K(1441600K), 7.3838390 secs]
+ * 26683.209: [GC 26683.210: [ParNew: 261760K->261760K(261952K), 0.0000130 secs]26683.210: [CMS (concurrent mode failure): 1141548K->1078465K(1179648K), 7.3835370 secs] 1403308K->1078465K(1441600K), 7.3838390 secs]
  * 
* *

* 2) Split into 2 lines then combined as 1 line by - * {@link org.eclipselabs.garbagecat.preprocess.jdk.CmsConcurrentModeFailurePreprocessAction}. Balanced brackets with - * additional CMS-concurrent block: + * {@link org.eclipselabs.garbagecat.preprocess.jdk.CmsPreprocessAction}. Balanced brackets with additional + * CMS-concurrent block: *

* *
- * 52.820: [GC 52.822: [ParNew: 966519K->96048K(1100288K), 0.5364770 secs] 966519K->96048K(4037120K), 0.5377870 secs] (concurrent mode failure): 844276K->399360K(907264K), 8.1624950 secs] 1441025K->399360K(1506304K), 11.7996390 secs] [Times: user=8.61 sys=0.04, real=11.80 secs]
+ * 52.820: [GC 52.822: [ParNew: 966519K->96048K(1100288K), 0.5364770 secs] 966519K->96048K(4037120K), 0.5377870 secs] (concurrent mode failure): 844276K->399360K(907264K), 8.1624950 secs] 1441025K->399360K(1506304K), 11.7996390 secs] [Times: user=8.61 sys=0.04, real=11.80 secs]
  * 
* *

@@ -93,7 +93,7 @@ *

* *
- * 27067.966: [GC 27067.966: [ParNew: 261760K->261760K(261952K), 0.0000160 secs]27067.966: [CMS27067.966: [CMS-concurrent-abortable-preclean: 2.272/29.793 secs] (concurrent mode failure): 1147900K->1155037K(1179648K), 7.3953900 secs] 1409660K->1155037K(1441600K), 7.3957620 secs]
+ * 27067.966: [GC 27067.966: [ParNew: 261760K->261760K(261952K), 0.0000160 secs]27067.966: [CMS27067.966: [CMS-concurrent-abortable-preclean: 2.272/29.793 secs] (concurrent mode failure): 1147900K->1155037K(1179648K), 7.3953900 secs] 1409660K->1155037K(1441600K), 7.3957620 secs]
  * 
* *

@@ -101,7 +101,7 @@ *

* *
- * 27636.893: [GC 27636.893: [ParNew: 261760K->261760K(261952K), 0.0000130 secs]27636.893: [CMS27639.231: [CMS-concurrent-mark: 4.803/4.803 secs] (concurrent mode failure): 1150993K->1147420K(1179648K), 9.9779890 secs] 1412753K->1147420K(1441600K), 9.9783140 secs]
+ * 27636.893: [GC 27636.893: [ParNew: 261760K->261760K(261952K), 0.0000130 secs]27636.893: [CMS27639.231: [CMS-concurrent-mark: 4.803/4.803 secs] (concurrent mode failure): 1150993K->1147420K(1179648K), 9.9779890 secs] 1412753K->1147420K(1441600K), 9.9783140 secs]
  * 
* * @@ -110,7 +110,7 @@ *

* *
- * 5075.405: [GC 5075.405: [ParNew: 261760K->261760K(261952K), 0.0000750 secs]5075.405: [CMS5081.144: [CMS-concurrent-preclean: 14.653/31.189 secs] (concurrent mode failure): 1796901K->1078231K(1835008K), 96.6130290 secs] 2058661K->1078231K(2096960K) icms_dc=100 , 96.6140400 secs]
+ * 5075.405: [GC 5075.405: [ParNew: 261760K->261760K(261952K), 0.0000750 secs]5075.405: [CMS5081.144: [CMS-concurrent-preclean: 14.653/31.189 secs] (concurrent mode failure): 1796901K->1078231K(1835008K), 96.6130290 secs] 2058661K->1078231K(2096960K) icms_dc=100 , 96.6140400 secs]
  * 
* * @author Mike Millson @@ -179,7 +179,10 @@ public class ParNewConcurrentModeFailureEvent private int oldAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewConcurrentModeFailureEvent(String logEntry) { this.logEntry = logEntry; @@ -203,8 +206,11 @@ public ParNewConcurrentModeFailureEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewConcurrentModeFailureEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewConcurrentModeFailurePermDataEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewConcurrentModeFailurePermDataEvent.java index 0b398ee0..708124be 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewConcurrentModeFailurePermDataEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewConcurrentModeFailurePermDataEvent.java @@ -48,6 +48,7 @@ *

* This happens because there is not enough space in the old generation to support the rate of promotion from the young * generation. Possible causes: + *

*
    *
  1. The heap is too small.
  2. *
  3. There is a change in application behavior (e.g. a load increase) that causes the young promotion rate to exceed @@ -68,7 +69,6 @@ *
  4. If the old generation has available space, the cause is likely fragmentation. Fragmentation can be avoided by * increasing the heap size.
  5. *
- *

* *

Example Logging

* @@ -78,8 +78,8 @@ *

* *
- * 3070.289: [GC 3070.289: [ParNew: 207744K->207744K(242304K), 0.0000682 secs]3070.289: [CMS3081.621: [CMS-concurrent-mark: 11.907/12.958 secs] [Times: user=45.31 sys=3.93, real=12.96 secs]
- *  (concurrent mode failure): 6010121K->6014591K(6014592K), 79.0505229 secs] 6217865K->6028029K(6256896K), [CMS Perm : 206688K->206662K(262144K)], 79.0509595 secs] [Times: user=104.69 sys=3.63, real=79.05 secs]
+ * 3070.289: [GC 3070.289: [ParNew: 207744K->207744K(242304K), 0.0000682 secs]3070.289: [CMS3081.621: [CMS-concurrent-mark: 11.907/12.958 secs] [Times: user=45.31 sys=3.93, real=12.96 secs]
+ *  (concurrent mode failure): 6010121K->6014591K(6014592K), 79.0505229 secs] 6217865K->6028029K(6256896K), [CMS Perm : 206688K->206662K(262144K)], 79.0509595 secs] [Times: user=104.69 sys=3.63, real=79.05 secs]
  * 
* *

@@ -87,7 +87,7 @@ *

* *
- * 3070.289: [GC 3070.289: [ParNew: 207744K->207744K(242304K), 0.0000682 secs]3070.289: [CMS (concurrent mode failure): 6010121K->6014591K(6014592K), 79.0505229 secs] 6217865K->6028029K(6256896K), [CMS Perm : 206688K->206662K(262144K)], 79.0509595 secs] [Times: user=104.69 sys=3.63, real=79.05 secs]
+ * 3070.289: [GC 3070.289: [ParNew: 207744K->207744K(242304K), 0.0000682 secs]3070.289: [CMS (concurrent mode failure): 6010121K->6014591K(6014592K), 79.0505229 secs] 6217865K->6028029K(6256896K), [CMS Perm : 206688K->206662K(262144K)], 79.0509595 secs] [Times: user=104.69 sys=3.63, real=79.05 secs]
  * 3081.621: [CMS-concurrent-mark: 11.907/12.958 secs] [Times: user=45.31 sys=3.93, real=12.96 secs]
  * 
* @@ -172,7 +172,10 @@ public class ParNewConcurrentModeFailurePermDataEvent private int permGenAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewConcurrentModeFailurePermDataEvent(String logEntry) { this.logEntry = logEntry; @@ -199,8 +202,11 @@ public ParNewConcurrentModeFailurePermDataEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewConcurrentModeFailurePermDataEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewEvent.java index e83b7c0e..8aedbc52 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewEvent.java @@ -41,7 +41,7 @@ *

* *
- * 20.189: [GC 20.190: [ParNew: 86199K->8454K(91712K), 0.0375060 secs] 89399K->11655K(907328K), 0.0387074 secs]
+ * 20.189: [GC 20.190: [ParNew: 86199K->8454K(91712K), 0.0375060 secs] 89399K->11655K(907328K), 0.0387074 secs]
  * 
* *

@@ -49,7 +49,7 @@ *

* *
- * 18934.651: [Full GC 18934.651: [ParNew: 253303K->7680K(254464K), 0.2377648 secs] 866808K->648302K(1040896K), 0.2380553 secs]
+ * 18934.651: [Full GC 18934.651: [ParNew: 253303K->7680K(254464K), 0.2377648 secs] 866808K->648302K(1040896K), 0.2380553 secs]
  * 
* *

@@ -57,7 +57,7 @@ *

* *
- * 2010-02-26T08:31:51.990-0600: [GC [ParNew: 150784K->4291K(169600K), 0.0246670 secs] 150784K->4291K(1029760K), 0.0247500 secs] [Times: user=0.06 sys=0.01, real=0.02 secs]
+ * 2010-02-26T08:31:51.990-0600: [GC [ParNew: 150784K->4291K(169600K), 0.0246670 secs] 150784K->4291K(1029760K), 0.0247500 secs] [Times: user=0.06 sys=0.01, real=0.02 secs]
  * 
* *

@@ -66,12 +66,12 @@ * *

  * raw:
- * 2013-12-09T16:18:17.813+0000: 13.086: [GC2013-12-09T16:18:17.813+0000: 13.086: [ParNew: 272640K->33532K(306688K), 0.0381419 secs] 272640K->33532K(1014528K), 0.0383306 secs] [Times: user=0.11 sys=0.02, real=0.04 secs]
+ * 2013-12-09T16:18:17.813+0000: 13.086: [GC2013-12-09T16:18:17.813+0000: 13.086: [ParNew: 272640K->33532K(306688K), 0.0381419 secs] 272640K->33532K(1014528K), 0.0383306 secs] [Times: user=0.11 sys=0.02, real=0.04 secs]
  * 
* *
  * preprocessed:
- * 84.335: [GC 84.336: [ParNew: 273152K->858K(341376K), 0.0030008 secs] 273152K->858K(980352K), 0.0031183 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
+ * 84.335: [GC 84.336: [ParNew: 273152K->858K(341376K), 0.0030008 secs] 273152K->858K(980352K), 0.0031183 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
  * 
* *

@@ -79,7 +79,7 @@ *

* *
- * 6.703: [GC (Allocation Failure) 6.703: [ParNew: 886080K->11485K(996800K), 0.0193349 secs] 886080K->11485K(1986432K), 0.0198375 secs] [Times: user=0.09 sys=0.01, real=0.02 secs]
+ * 6.703: [GC (Allocation Failure) 6.703: [ParNew: 886080K->11485K(996800K), 0.0193349 secs] 886080K->11485K(1986432K), 0.0198375 secs] [Times: user=0.09 sys=0.01, real=0.02 secs]
  * 
* * @author Mike Millson @@ -160,7 +160,10 @@ public class ParNewEvent implements BlockingEvent, YoungCollection, YoungData, O private boolean incrementalMode; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewEvent(String logEntry) { this.logEntry = logEntry; @@ -190,8 +193,11 @@ public ParNewEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedCmsSerialOldEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedCmsSerialOldEvent.java index feafc01c..afcf1c9a 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedCmsSerialOldEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedCmsSerialOldEvent.java @@ -57,7 +57,7 @@ *

* *
- * 1181.943: [GC 1181.943: [ParNew (promotion failed): 145542K->142287K(149120K), 0.1316193 secs]1182.075: [CMS: 6656483K->548489K(8218240K), 9.1244297 secs] 6797120K->548489K(8367360K), 9.2564476 secs]
+ * 1181.943: [GC 1181.943: [ParNew (promotion failed): 145542K->142287K(149120K), 0.1316193 secs]1182.075: [CMS: 6656483K->548489K(8218240K), 9.1244297 secs] 6797120K->548489K(8367360K), 9.2564476 secs]
  * 
* *

@@ -65,7 +65,7 @@ *

* *
- * 3546.690: [GC 3546.691: [ParNew: 532480K->532480K(599040K), 0.0000400 secs]3546.691: [CMS: 887439K->893801K(907264K), 9.6413020 secs] 1419919K->893801K(1506304K), 9.6419180 secs]
+ * 3546.690: [GC 3546.691: [ParNew: 532480K->532480K(599040K), 0.0000400 secs]3546.691: [CMS: 887439K->893801K(907264K), 9.6413020 secs] 1419919K->893801K(1506304K), 9.6419180 secs]
  * 
* *

@@ -73,7 +73,7 @@ *

* *
- * 289985.117: [GC 289985.117: [ParNew (promotion failed): 144192K->144192K(144192K), 0.1347360 secs]289985.252: [Tenured: 1281600K->978341K(1281600K), 3.6577930 secs] 1409528K->978341K(1425792K), 3.7930200 secs]
+ * 289985.117: [GC 289985.117: [ParNew (promotion failed): 144192K->144192K(144192K), 0.1347360 secs]289985.252: [Tenured: 1281600K->978341K(1281600K), 3.6577930 secs] 1409528K->978341K(1425792K), 3.7930200 secs]
  * 
* * @author Mike Millson @@ -139,7 +139,10 @@ public class ParNewPromotionFailedCmsSerialOldEvent private int oldAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewPromotionFailedCmsSerialOldEvent(String logEntry) { this.logEntry = logEntry; @@ -164,8 +167,11 @@ public ParNewPromotionFailedCmsSerialOldEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewPromotionFailedCmsSerialOldEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedCmsSerialOldPermDataEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedCmsSerialOldPermDataEvent.java index 7db8930a..3d2402b5 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedCmsSerialOldPermDataEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedCmsSerialOldPermDataEvent.java @@ -59,7 +59,7 @@ *

* *
- * 395950.370: [GC 395950.370: [ParNew (promotion failed): 53094K->53606K(59008K), 0.0510880 secs]395950.421: [CMS: 664527K->317110K(1507328K), 2.9523520 secs] 697709K->317110K(1566336K), [CMS Perm : 83780K->83711K(131072K)], 3.0039040 secs]
+ * 395950.370: [GC 395950.370: [ParNew (promotion failed): 53094K->53606K(59008K), 0.0510880 secs]395950.421: [CMS: 664527K->317110K(1507328K), 2.9523520 secs] 697709K->317110K(1566336K), [CMS Perm : 83780K->83711K(131072K)], 3.0039040 secs]
  * 
* *

@@ -71,7 +71,7 @@ *

* *
- * 4595.651: [GC 4595.651: [ParNew (promotion failed): 1304576K->1304576K(1304576K), 1.7740754 secs]4597.425: [CMS: 967034K->684015K(4886528K), 3.2678588 secs] 2022731K->684015K(6191104K), [CMS Perm : 201541K->201494K(524288K)] icms_dc=21 , 5.0421688 secs] [Times: user=5.54 sys=0.01, real=5.04 secs]
+ * 4595.651: [GC 4595.651: [ParNew (promotion failed): 1304576K->1304576K(1304576K), 1.7740754 secs]4597.425: [CMS: 967034K->684015K(4886528K), 3.2678588 secs] 2022731K->684015K(6191104K), [CMS Perm : 201541K->201494K(524288K)] icms_dc=21 , 5.0421688 secs] [Times: user=5.54 sys=0.01, real=5.04 secs]
  * 
* *

@@ -79,7 +79,7 @@ *

* *
- * 108537.519: [GC108537.520: [ParNew (promotion failed): 1409215K->1426861K(1567616K), 0.4259330 secs]108537.946: [CMS: 13135135K->4554003K(16914880K), 14.7637760 secs] 14542753K->4554003K(18482496K), [CMS Perm : 227503K->226115K(378908K)], 15.1927120 secs] [Times: user=16.31 sys=0.21, real=15.19 secs]
+ * 108537.519: [GC108537.520: [ParNew (promotion failed): 1409215K->1426861K(1567616K), 0.4259330 secs]108537.946: [CMS: 13135135K->4554003K(16914880K), 14.7637760 secs] 14542753K->4554003K(18482496K), [CMS Perm : 227503K->226115K(378908K)], 15.1927120 secs] [Times: user=16.31 sys=0.21, real=15.19 secs]
  * 
* * @author Mike Millson @@ -161,7 +161,10 @@ public class ParNewPromotionFailedCmsSerialOldPermDataEvent private int permGenAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewPromotionFailedCmsSerialOldPermDataEvent(String logEntry) { this.logEntry = logEntry; @@ -189,8 +192,11 @@ public ParNewPromotionFailedCmsSerialOldPermDataEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewPromotionFailedCmsSerialOldPermDataEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedConcModeFailurePermDataEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedConcModeFailurePermDataEvent.java index a87cf5e8..9f18a1f2 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedConcModeFailurePermDataEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedConcModeFailurePermDataEvent.java @@ -41,12 +41,12 @@ *

Example Logging

* *

- * Split into 2 lines then combined as 1 line by - * {@link org.eclipselabs.garbagecat.preprocess.jdk.CmsConcurrentModeFailurePreprocessAction} with CMS-concurrent-mark: + * Split into 2 lines then combined as 1 line by {@link org.eclipselabs.garbagecat.preprocess.jdk.CmsPreprocessAction} + * with CMS-concurrent-mark: *

* *
- * 2746.109: [GC 2746.109: [ParNew (promotion failed): 242303K->242304K(242304K), 1.3009892 secs]2747.410: [CMS2755.518: [CMS-concurrent-mark: 11.734/13.504 secs] (concurrent mode failure): 5979868K->5968004K(6014592K), 78.3207206 secs] 6205857K->5968004K(6256896K), [CMS Perm : 207397K->207212K(262144K)], 79.6222096 secs]
+ * 2746.109: [GC 2746.109: [ParNew (promotion failed): 242303K->242304K(242304K), 1.3009892 secs]2747.410: [CMS2755.518: [CMS-concurrent-mark: 11.734/13.504 secs] (concurrent mode failure): 5979868K->5968004K(6014592K), 78.3207206 secs] 6205857K->5968004K(6256896K), [CMS Perm : 207397K->207212K(262144K)], 79.6222096 secs]
  * 
* *

@@ -58,17 +58,16 @@ *

* *
- * 4555.706: [GC 4555.706: [ParNew (promotion failed): 1304576K->1304575K(1304576K), 4.5501949 secs]4560.256: [CMS CMS: abort preclean due to time 4562.921: [CMS-concurrent-abortable-preclean: 2.615/14.874 secs] (concurrent mode failure): 924455K->679155K(4886528K), 6.2285220 secs] 1973973K->679155K(6191104K), [CMS Perm : 198322K->198277K(524288K)] icms_dc=24 , 10.7789303 secs] [Times: user=9.49 sys=1.83, real=10.78 secs]
+ * 4555.706: [GC 4555.706: [ParNew (promotion failed): 1304576K->1304575K(1304576K), 4.5501949 secs]4560.256: [CMS CMS: abort preclean due to time 4562.921: [CMS-concurrent-abortable-preclean: 2.615/14.874 secs] (concurrent mode failure): 924455K->679155K(4886528K), 6.2285220 secs] 1973973K->679155K(6191104K), [CMS Perm : 198322K->198277K(524288K)] icms_dc=24 , 10.7789303 secs] [Times: user=9.49 sys=1.83, real=10.78 secs]
  * 
* *

- * Split into 2 lines then combined as 1 line by - * {@link org.eclipselabs.garbagecat.preprocess.jdk.CmsConcurrentModeFailurePreprocessAction} with concurrent mode - * failure missing: + * Split into 2 lines then combined as 1 line by {@link org.eclipselabs.garbagecat.preprocess.jdk.CmsPreprocessAction} + * with concurrent mode failure missing: *

* *
- * 88063.609: [GC 88063.610: [ParNew (promotion failed): 513856K->513856K(513856K), 4.0911197 secs]88067.701: [CMS88067.742: [CMS-concurrent-reset: 0.309/4.421 secs]: 10612422K->4373474K(11911168K), 76.7523274 secs] 11075362K->4373474K(12425024K), [CMS Perm : 214530K->213777K(524288K)], 80.8440551 secs] [Times: user=80.01 sys=5.57, real=80.84 secs]
+ * 88063.609: [GC 88063.610: [ParNew (promotion failed): 513856K->513856K(513856K), 4.0911197 secs]88067.701: [CMS88067.742: [CMS-concurrent-reset: 0.309/4.421 secs]: 10612422K->4373474K(11911168K), 76.7523274 secs] 11075362K->4373474K(12425024K), [CMS Perm : 214530K->213777K(524288K)], 80.8440551 secs] [Times: user=80.01 sys=5.57, real=80.84 secs]
  * 
* * @author Mike Millson @@ -153,7 +152,10 @@ public class ParNewPromotionFailedConcModeFailurePermDataEvent private int permGenAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewPromotionFailedConcModeFailurePermDataEvent(String logEntry) { this.logEntry = logEntry; @@ -180,8 +182,11 @@ public ParNewPromotionFailedConcModeFailurePermDataEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewPromotionFailedConcModeFailurePermDataEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedConcurrentModeFailureEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedConcurrentModeFailureEvent.java index 0a3ad364..e2eb187c 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedConcurrentModeFailureEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedConcurrentModeFailureEvent.java @@ -44,17 +44,16 @@ *

* *
- * 25281.015: [GC 25281.015: [ParNew (promotion failed): 261760K->261760K(261952K), 0.1785000 secs]25281.193: [CMS (concurrent mode failure): 1048384K->1015603K(1179648K), 7.6767910 secs] 1292923K->1015603K(1441600K), 7.8557660 secs]
+ * 25281.015: [GC 25281.015: [ParNew (promotion failed): 261760K->261760K(261952K), 0.1785000 secs]25281.193: [CMS (concurrent mode failure): 1048384K->1015603K(1179648K), 7.6767910 secs] 1292923K->1015603K(1441600K), 7.8557660 secs]
  * 
* *

* 2) Split into 2 lines then combined as 1 line by - * {@link org.eclipselabs.garbagecat.preprocess.jdk.CmsConcurrentModeFailurePreprocessAction} with - * CMS-concurrent-abortable-preclean: + * {@link org.eclipselabs.garbagecat.preprocess.jdk.CmsPreprocessAction} with CMS-concurrent-abortable-preclean: *

* *
- * 233333.318: [GC 233333.319: [ParNew (promotion failed): 673108K->673108K(707840K), 1.5366054 secs]233334.855: [CMS233334.856: [CMS-concurrent-abortable-preclean: 12.033/27.431 secs] (concurrent mode failure): 1125100K->1156809K(1310720K), 36.8003032 secs] 1791073K->1156809K(2018560K), 38.3378201 secs]
+ * 233333.318: [GC 233333.319: [ParNew (promotion failed): 673108K->673108K(707840K), 1.5366054 secs]233334.855: [CMS233334.856: [CMS-concurrent-abortable-preclean: 12.033/27.431 secs] (concurrent mode failure): 1125100K->1156809K(1310720K), 36.8003032 secs] 1791073K->1156809K(2018560K), 38.3378201 secs]
  * 
* * @author Mike Millson @@ -122,7 +121,10 @@ public class ParNewPromotionFailedConcurrentModeFailureEvent private int oldAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewPromotionFailedConcurrentModeFailureEvent(String logEntry) { this.logEntry = logEntry; @@ -146,8 +148,11 @@ public ParNewPromotionFailedConcurrentModeFailureEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewPromotionFailedConcurrentModeFailureEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedEvent.java index 8fccde70..ab1186b6 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedEvent.java @@ -48,7 +48,7 @@ *

Example Logging

* *
- * 144501.626: [GC 144501.627: [ParNew (promotion failed): 680066K->680066K(707840K), 3.7067346 secs] 1971073K->1981370K(2018560K), 3.7084059 secs]
+ * 144501.626: [GC 144501.627: [ParNew (promotion failed): 680066K->680066K(707840K), 3.7067346 secs] 1971073K->1981370K(2018560K), 3.7084059 secs]
  * 
* *

@@ -56,7 +56,7 @@ *

* *
- * 159275.552: [GC 159275.552: [ParNew (promotion failed): 2007040K->2007040K(2007040K), 4.3393411 secs] 5167424K->5187429K(12394496K) icms_dc=7 , 4.3398519 secs] [Times: user=4.96 sys=1.91, real=4.34 secs]
+ * 159275.552: [GC 159275.552: [ParNew (promotion failed): 2007040K->2007040K(2007040K), 4.3393411 secs] 5167424K->5187429K(12394496K) icms_dc=7 , 4.3398519 secs] [Times: user=4.96 sys=1.91, real=4.34 secs]
  * 
* * @author Mike Millson @@ -88,7 +88,10 @@ public class ParNewPromotionFailedEvent implements BlockingEvent, CmsCollection private long timestamp; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewPromotionFailedEvent(String logEntry) { this.logEntry = logEntry; @@ -103,8 +106,11 @@ public ParNewPromotionFailedEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewPromotionFailedEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedTruncatedEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedTruncatedEvent.java index b047196d..a235ed5e 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedTruncatedEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParNewPromotionFailedTruncatedEvent.java @@ -35,13 +35,13 @@ *

Example Logging

* *
- * 5881.424: [GC 5881.424: [ParNew (promotion failed): 153272K->152257K(153344K), 0.2143850 secs]5881.639: [CMS
+ * 5881.424: [GC 5881.424: [ParNew (promotion failed): 153272K->152257K(153344K), 0.2143850 secs]5881.639: [CMS
  * 
* * With a {@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} at the end: * *
- * 36455.096: [GC 36455.096: [ParNew (promotion failed): 153344K->153344K(153344K), 0.6818450 secs]36455.778: [CMS36459.090: [CMS-concurrent-mark: 3.439/4.155 secs] [Times: user=8.27 sys=0.17, real=4.16 secs]
+ * 36455.096: [GC 36455.096: [ParNew (promotion failed): 153344K->153344K(153344K), 0.6818450 secs]36455.778: [CMS36459.090: [CMS-concurrent-mark: 3.439/4.155 secs] [Times: user=8.27 sys=0.17, real=4.16 secs]
  * 
* * @author Mike Millson @@ -73,7 +73,10 @@ public class ParNewPromotionFailedTruncatedEvent implements BlockingEvent, CmsCo private long timestamp; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewPromotionFailedTruncatedEvent(String logEntry) { this.logEntry = logEntry; @@ -88,8 +91,11 @@ public ParNewPromotionFailedTruncatedEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParNewPromotionFailedTruncatedEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelOldCompactingEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelOldCompactingEvent.java index 4eaf2eb5..b9e2775d 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelOldCompactingEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelOldCompactingEvent.java @@ -54,7 +54,7 @@ *

* *
- * 2182.541: [Full GC [PSYoungGen: 1940K->0K(98560K)] [ParOldGen: 813929K->422305K(815616K)] 815869K->422305K(914176K) [PSPermGen: 81960K->81783K(164352K)], 2.4749181 secs]
+ * 2182.541: [Full GC [PSYoungGen: 1940K->0K(98560K)] [ParOldGen: 813929K->422305K(815616K)] 815869K->422305K(914176K) [PSPermGen: 81960K->81783K(164352K)], 2.4749181 secs]
  * 
* *

@@ -62,7 +62,7 @@ *

* *
- * 2.417: [Full GC (System) [PSYoungGen: 1788K->0K(12736K)] [ParOldGen: 1084K->2843K(116544K)] 2872K->2843K(129280K) [PSPermGen: 8602K->8593K(131072K)], 0.1028360 secs]
+ * 2.417: [Full GC (System) [PSYoungGen: 1788K->0K(12736K)] [ParOldGen: 1084K->2843K(116544K)] 2872K->2843K(129280K) [PSPermGen: 8602K->8593K(131072K)], 0.1028360 secs]
  * 
* *

@@ -70,7 +70,7 @@ *

* *
- * 1.234: [Full GC (Metadata GC Threshold) [PSYoungGen: 17779K->0K(1835008K)] [ParOldGen: 16K->16894K(4194304K)] 17795K->16894K(6029312K), [Metaspace: 19114K->19114K(1067008K)], 0.0352132 secs] [Times: user=0.09 sys=0.00, real=0.04 secs]
+ * 1.234: [Full GC (Metadata GC Threshold) [PSYoungGen: 17779K->0K(1835008K)] [ParOldGen: 16K->16894K(4194304K)] 17795K->16894K(6029312K), [Metaspace: 19114K->19114K(1067008K)], 0.0352132 secs] [Times: user=0.09 sys=0.00, real=0.04 secs]
  * 
* * @author Mike Millson @@ -158,7 +158,10 @@ public class ParallelOldCompactingEvent private static Pattern pattern = Pattern.compile(ParallelOldCompactingEvent.REGEX); /** - * Create parallel old detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParallelOldCompactingEvent(String logEntry) { this.logEntry = logEntry; @@ -184,8 +187,11 @@ public ParallelOldCompactingEvent(String logEntry) { * Alternate constructor. Create parallel old detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParallelOldCompactingEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelScavengeEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelScavengeEvent.java index 030a7548..d385b2fc 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelScavengeEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelScavengeEvent.java @@ -41,7 +41,7 @@ *

* *
- * 19810.091: [GC [PSYoungGen: 27808K->632K(28032K)] 160183K->133159K(585088K), 0.0225213 secs]
+ * 19810.091: [GC [PSYoungGen: 27808K->632K(28032K)] 160183K->133159K(585088K), 0.0225213 secs]
  * 
* *

@@ -49,7 +49,7 @@ *

* *
- * 14112.691: [GC-- [PSYoungGen: 313864K->313864K(326656K)] 879670K->1012935K(1025728K), 0.9561947 secs]
+ * 14112.691: [GC-- [PSYoungGen: 313864K->313864K(326656K)] 879670K->1012935K(1025728K), 0.9561947 secs]
  * 
* *

@@ -57,7 +57,7 @@ *

* *
- * 1.219: [GC (Metadata GC Threshold) [PSYoungGen: 1226834K->17779K(1835008K)] 1226834K->17795K(6029312K), 0.0144911 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
+ * 1.219: [GC (Metadata GC Threshold) [PSYoungGen: 1226834K->17779K(1835008K)] 1226834K->17795K(6029312K), 0.0144911 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
  * 
* * @author Mike Millson @@ -127,7 +127,10 @@ public class ParallelScavengeEvent implements BlockingEvent, YoungCollection, Yo private static final Pattern pattern = Pattern.compile(ParallelScavengeEvent.REGEX); /** - * Create parallel scavenge logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParallelScavengeEvent(String logEntry) { this.logEntry = logEntry; @@ -152,8 +155,11 @@ public ParallelScavengeEvent(String logEntry) { * Alternate constructor. Create parallel scavenge logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParallelScavengeEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelSerialOldEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelSerialOldEvent.java index 498172e3..64baaa4f 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelSerialOldEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/ParallelSerialOldEvent.java @@ -44,7 +44,7 @@ *

* *
- * 3.600: [Full GC [PSYoungGen: 5424K->0K(38208K)] [PSOldGen: 488K->5786K(87424K)] 5912K->5786K(125632K) [PSPermGen: 13092K->13094K(131072K)], 0.0699360 secs]
+ * 3.600: [Full GC [PSYoungGen: 5424K->0K(38208K)] [PSOldGen: 488K->5786K(87424K)] 5912K->5786K(125632K) [PSPermGen: 13092K->13094K(131072K)], 0.0699360 secs]
  * 
* *

@@ -52,7 +52,7 @@ *

* *
- * 4.165: [Full GC (System) [PSYoungGen: 1784K->0K(12736K)] [PSOldGen: 1081K->2855K(116544K)] 2865K->2855K(129280K) [PSPermGen: 8600K->8600K(131072K)], 0.0427680 secs]
+ * 4.165: [Full GC (System) [PSYoungGen: 1784K->0K(12736K)] [PSOldGen: 1081K->2855K(116544K)] 2865K->2855K(129280K) [PSPermGen: 8600K->8600K(131072K)], 0.0427680 secs]
  * 
* * TODO: Expand or extend {@link org.eclipselabs.garbagecat.domain.jdk.SerialOldEvent}. @@ -142,7 +142,10 @@ public class ParallelSerialOldEvent private static Pattern pattern = Pattern.compile(ParallelSerialOldEvent.REGEX); /** - * Create parallel old detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParallelSerialOldEvent(String logEntry) { this.logEntry = logEntry; @@ -170,8 +173,11 @@ public ParallelSerialOldEvent(String logEntry) { * Alternate constructor. Create parallel old detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public ParallelSerialOldEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/PrintReferenceGcEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/PrintReferenceGcEvent.java index 72088285..0e8449d4 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/PrintReferenceGcEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/PrintReferenceGcEvent.java @@ -32,7 +32,7 @@ *

Example Logging

* *
- * 0.341: [GC (Allocation Failure) 0.344: [SoftReference, 0 refs, 0.0000327 secs]0.344: [WeakReference, 19 refs, 0.0000049 secs]0.344: [FinalReference, 296 refs, 0.0002385 secs]0.344: [PhantomReference, 0 refs, 0 refs, 0.0000033 secs]0.344: [JNI Weak Reference, 0.0000041 secs][PSYoungGen: 63488K->3151K(73728K)] 63488K->3159K(241664K), 0.0032820 secs] [Times: user=0.02 sys=0.00, real=0.00 secs]
+ * 0.341: [GC (Allocation Failure) 0.344: [SoftReference, 0 refs, 0.0000327 secs]0.344: [WeakReference, 19 refs, 0.0000049 secs]0.344: [FinalReference, 296 refs, 0.0002385 secs]0.344: [PhantomReference, 0 refs, 0 refs, 0.0000033 secs]0.344: [JNI Weak Reference, 0.0000041 secs][PSYoungGen: 63488K->3151K(73728K)] 63488K->3159K(241664K), 0.0032820 secs] [Times: user=0.02 sys=0.00, real=0.00 secs]
  * 
* * @author Mike Millson @@ -58,7 +58,10 @@ public class PrintReferenceGcEvent implements LogEvent { private long timestamp; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public PrintReferenceGcEvent(String logEntry) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialEvent.java index 05380f1c..6c997a5c 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialEvent.java @@ -39,21 +39,21 @@ *

* *
- * 7.798: [GC 7.798: [DefNew: 37172K->3631K(39296K), 0.0209300 secs] 41677K->10314K(126720K), 0.0210210 secs]
+ * 7.798: [GC 7.798: [DefNew: 37172K->3631K(39296K), 0.0209300 secs] 41677K->10314K(126720K), 0.0210210 secs]
  * 
* *

* 2) With erroneous "Full": * *

- * 142352.790: [Full GC 142352.790: [DefNew: 444956K->28315K(471872K), 0.0971099 secs] 1020658K->604017K(1520448K), 0.0972451 secs]
+ * 142352.790: [Full GC 142352.790: [DefNew: 444956K->28315K(471872K), 0.0971099 secs] 1020658K->604017K(1520448K), 0.0972451 secs]
  * 
* *

* 3) No space after "GC": * *

- * 4.296: [GC4.296: [DefNew: 68160K->8512K(76672K), 0.0528470 secs] 68160K->11664K(1325760K), 0.0530640 secs] [Times: user=0.04 sys=0.00, real=0.05 secs]
+ * 4.296: [GC4.296: [DefNew: 68160K->8512K(76672K), 0.0528470 secs] 68160K->11664K(1325760K), 0.0530640 secs] [Times: user=0.04 sys=0.00, real=0.05 secs]
  * 
* * @author Mike Millson @@ -117,7 +117,9 @@ public class SerialEvent implements BlockingEvent, YoungCollection, YoungData, O private int oldAllocation; /** - * Create serial logging event from log entry. + * + * @param logEntry + * The log entry for the event. */ public SerialEvent(String logEntry) { this.logEntry = logEntry; @@ -141,8 +143,11 @@ public SerialEvent(String logEntry) { * Alternate constructor. Create serial logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public SerialEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialOldEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialOldEvent.java index 21f35bba..3bc20b0e 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialOldEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialOldEvent.java @@ -42,7 +42,7 @@ *

* *
- * 187.159: [Full GC 187.160: [Tenured: 97171K->102832K(815616K), 0.6977443 secs] 152213K->102832K(907328K), [Perm : 49152K->49154K(49158K)], 0.6929258 secs]
+ * 187.159: [Full GC 187.160: [Tenured: 97171K->102832K(815616K), 0.6977443 secs] 152213K->102832K(907328K), [Perm : 49152K->49154K(49158K)], 0.6929258 secs]
  * 
* *

@@ -50,7 +50,7 @@ *

* *
- * 2.457: [Full GC (System) 2.457: [Tenured: 1092K->2866K(116544K), 0.0489980 secs] 11012K->2866K(129664K), [Perm : 8602K->8602K(131072K)], 0.0490880 secs]
+ * 2.457: [Full GC (System) 2.457: [Tenured: 1092K->2866K(116544K), 0.0489980 secs] 11012K->2866K(129664K), [Perm : 8602K->8602K(131072K)], 0.0490880 secs]
  * 
* * @author Mike Millson @@ -137,7 +137,9 @@ public SerialOldEvent() { } /** - * Create serial old detail logging event from log entry. + * + * @param logEntry + * The log entry for the event. */ public SerialOldEvent(String logEntry) { this.logEntry = logEntry; @@ -165,8 +167,11 @@ public SerialOldEvent(String logEntry) { * Alternate constructor. Create serial old detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public SerialOldEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialSerialOldEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialSerialOldEvent.java index 4a7264bd..458902a4 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialSerialOldEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialSerialOldEvent.java @@ -41,7 +41,7 @@ *

Example Logging

* *
- * 160.678: [GC 160.678: [DefNew: 450682K->450682K(471872K), 0.0000099 secs]160.678: [Tenured: 604639K->552856K(1048576K), 1.1178810 secs] 1055322K->552856K(1520448K), 1.1180562 secs]
+ * 160.678: [GC 160.678: [DefNew: 450682K->450682K(471872K), 0.0000099 secs]160.678: [Tenured: 604639K->552856K(1048576K), 1.1178810 secs] 1055322K->552856K(1520448K), 1.1180562 secs]
  * 
* * @author Mike Millson @@ -106,7 +106,10 @@ public class SerialSerialOldEvent implements BlockingEvent, YoungCollection, Old private int oldAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public SerialSerialOldEvent(String logEntry) { this.logEntry = logEntry; @@ -131,8 +134,11 @@ public SerialSerialOldEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public SerialSerialOldEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialSerialOldPermDataEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialSerialOldPermDataEvent.java index fd8c6067..94bba5e2 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialSerialOldPermDataEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/SerialSerialOldPermDataEvent.java @@ -43,7 +43,7 @@ *

Example Logging

* *
- * 3727.365: [GC 3727.365: [DefNew: 400314K->400314K(400384K), 0.0000550 secs]3727.365: [Tenured: 837793K->597490K(889536K), 44.7498530 secs] 1238107K->597490K(1289920K), [Perm : 54745K->54745K(54784K)], 44.7501880 secs] [Times: user=5.32 sys=0.33, real=44.75 secs]
+ * 3727.365: [GC 3727.365: [DefNew: 400314K->400314K(400384K), 0.0000550 secs]3727.365: [Tenured: 837793K->597490K(889536K), 44.7498530 secs] 1238107K->597490K(1289920K), [Perm : 54745K->54745K(54784K)], 44.7501880 secs] [Times: user=5.32 sys=0.33, real=44.75 secs]
  * 
* * @author Mike Millson @@ -125,7 +125,10 @@ public class SerialSerialOldPermDataEvent private int permGenAllocation; /** - * Create ParNew detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public SerialSerialOldPermDataEvent(String logEntry) { this.logEntry = logEntry; @@ -153,8 +156,11 @@ public SerialSerialOldPermDataEvent(String logEntry) { * Alternate constructor. Create ParNew detail logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public SerialSerialOldPermDataEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/TruncatedEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/TruncatedEvent.java index 7052c4df..b4f892fb 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/TruncatedEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/TruncatedEvent.java @@ -33,8 +33,7 @@ *

Example Logging

* *

- * 1) The beginning of a {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldEvent} or - * {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldConcurrentModeFailureEvent}. + * 1) The beginning of a {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldEvent}. *

* *
@@ -84,7 +83,10 @@ public class TruncatedEvent implements LogEvent {
     private long timestamp;
 
     /**
-     * Create ParNew detail logging event from log entry.
+     * Create event from log entry.
+     * 
+     * @param logEntry
+     *            The log entry for the event.
      */
     public TruncatedEvent(String logEntry) {
         this.logEntry = logEntry;
diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/VerboseGcOldEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/VerboseGcOldEvent.java
index 325a69ab..4a4a8f11 100644
--- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/VerboseGcOldEvent.java
+++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/VerboseGcOldEvent.java
@@ -36,7 +36,7 @@
  * 

Example Logging

* *
- * 2143132.151: [Full GC 1606823K->1409859K(2976064K), 12.0855599 secs]
+ * 2143132.151: [Full GC 1606823K->1409859K(2976064K), 12.0855599 secs]
  * 
* * @author Mike Millson @@ -83,7 +83,10 @@ public class VerboseGcOldEvent implements BlockingEvent, OldCollection, Combined private static Pattern pattern = Pattern.compile(VerboseGcOldEvent.REGEX); /** - * Create serial old detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public VerboseGcOldEvent(String logEntry) { this.logEntry = logEntry; @@ -101,8 +104,11 @@ public VerboseGcOldEvent(String logEntry) { * Alternate constructor. Create logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public VerboseGcOldEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/VerboseGcYoungEvent.java b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/VerboseGcYoungEvent.java index 2b0934a5..09753e0a 100644 --- a/src/main/java/org/eclipselabs/garbagecat/domain/jdk/VerboseGcYoungEvent.java +++ b/src/main/java/org/eclipselabs/garbagecat/domain/jdk/VerboseGcYoungEvent.java @@ -40,7 +40,7 @@ *

* *
- * 2205570.508: [GC 1726387K->773247K(3097984K), 0.2318035 secs]
+ * 2205570.508: [GC 1726387K->773247K(3097984K), 0.2318035 secs]
  * 
* *

@@ -96,7 +96,10 @@ public class VerboseGcYoungEvent implements BlockingEvent, YoungCollection, Comb private static Pattern pattern = Pattern.compile(VerboseGcYoungEvent.REGEX); /** - * Create serial old detail logging event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public VerboseGcYoungEvent(String logEntry) { this.logEntry = logEntry; @@ -119,8 +122,11 @@ public VerboseGcYoungEvent(String logEntry) { * Alternate constructor. Create logging event from values. * * @param logEntry + * The log entry for the event. * @param timestamp + * The time when the GC event happened in milliseconds after JVM startup. * @param duration + * The elapsed clock time for the GC event in milliseconds. */ public VerboseGcYoungEvent(String logEntry, long timestamp, int duration) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/ApplicationLoggingPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/ApplicationLoggingPreprocessAction.java index 7271e556..ade3c539 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/ApplicationLoggingPreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/ApplicationLoggingPreprocessAction.java @@ -89,7 +89,10 @@ public class ApplicationLoggingPreprocessAction implements PreprocessAction { private String logEntry; /** - * Create thread dump event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ApplicationLoggingPreprocessAction(String logEntry) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ApplicationConcurrentTimePreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ApplicationConcurrentTimePreprocessAction.java index 8dd65615..17fe3cc1 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ApplicationConcurrentTimePreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ApplicationConcurrentTimePreprocessAction.java @@ -32,7 +32,7 @@ * *

Example Logging

* - *

<{@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} on second line./h4> + *

{@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} on second line.

* *
  * 1122748.949Application time: 0.0005210 seconds
@@ -46,7 +46,7 @@
  * 1122748.949: [CMS-concurrent-mark-start]
  * 
* - *

<{@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} on first line./h4> + *

{@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} on first line.

* *
  * 408365.532: [CMS-concurrent-mark: 0.476/10.257 secs]Application time: 0.0576080 seconds
@@ -86,6 +86,9 @@ public class ApplicationConcurrentTimePreprocessAction implements PreprocessActi
 
     /**
      * Create event from log entry.
+     * 
+     * @param logEntry
+     *            The log entry for the event.
      */
     public ApplicationConcurrentTimePreprocessAction(String logEntry) {
         Matcher matcher = PATTERN1.matcher(logEntry);
diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ApplicationStoppedTimePreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ApplicationStoppedTimePreprocessAction.java
index a1bb6803..a5865450 100644
--- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ApplicationStoppedTimePreprocessAction.java
+++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ApplicationStoppedTimePreprocessAction.java
@@ -87,6 +87,9 @@ public class ApplicationStoppedTimePreprocessAction implements PreprocessAction
 
     /**
      * Create event from log entry.
+     * 
+     * @param logEntry
+     *            The log entry for the event.
      */
     public ApplicationStoppedTimePreprocessAction(String logEntry) {
         Matcher matcher = PATTERN1.matcher(logEntry);
diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/CmsPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/CmsPreprocessAction.java
index f5611635..abe25ac9 100644
--- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/CmsPreprocessAction.java
+++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/CmsPreprocessAction.java
@@ -39,7 +39,7 @@
  *
  * 
  * 46674.719: [GC (Allocation Failure)46674.719: [ParNew46674.749: [CMS-concurrent-abortable-preclean: 1.427/2.228 secs] [Times: user=1.56 sys=0.01, real=2.23 secs]
- * : 153599K->17023K(153600K), 0.0383370 secs] 229326K->114168K(494976K), 0.0384820 secs] [Times: user=0.15 sys=0.01, real=0.04 secs]
+ * : 153599K->17023K(153600K), 0.0383370 secs] 229326K->114168K(494976K), 0.0384820 secs] [Times: user=0.15 sys=0.01, real=0.04 secs]
  * 
* *

@@ -47,7 +47,7 @@ *

* *
- * 46674.719: [GC (Allocation Failure)46674.719: [ParNew: 153599K->17023K(153600K), 0.0383370 secs] 229326K->114168K(494976K), 0.0384820 secs] [Times: user=0.15 sys=0.01, real=0.04 secs]
+ * 46674.719: [GC (Allocation Failure)46674.719: [ParNew: 153599K->17023K(153600K), 0.0383370 secs] 229326K->114168K(494976K), 0.0384820 secs] [Times: user=0.15 sys=0.01, real=0.04 secs]
  * 46674.749: [CMS-concurrent-abortable-preclean: 1.427/2.228 secs] [Times: user=1.56 sys=0.01, real=2.23 secs]
  * 
* @@ -58,7 +58,7 @@ * *
  * 10.963: [GC10.963: [ParNew10.977: [CMS-concurrent-abortable-preclean: 0.088/0.197 secs] [Times: user=0.33 sys=0.05, real=0.20 secs]
- * : 115327K->12800K(115328K), 0.0155930 secs] 349452K->251716K(404548K), 0.0156840 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
+ * : 115327K->12800K(115328K), 0.0155930 secs] 349452K->251716K(404548K), 0.0156840 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
  * 
* *

@@ -66,17 +66,18 @@ *

* *
- * 10.963: [GC10.963: [ParNew: 115327K->12800K(115328K), 0.0155930 secs] 349452K->251716K(404548K), 0.0156840 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
+ * 10.963: [GC10.963: [ParNew: 115327K->12800K(115328K), 0.0155930 secs] 349452K->251716K(404548K), 0.0156840 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
  * 10.977: [CMS-concurrent-abortable-preclean: 0.088/0.197 secs] [Times: user=0.33 sys=0.05, real=0.20 secs]
  * 
* *

- * 3) {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldConcurrentModeFailureEvent} across 2 lines: + * 3) {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldEvent} with concurrent mode failure trigger across 2 + * lines: *

* *
  * 44.684: [Full GC44.684: [CMS44.877: [CMS-concurrent-mark: 1.508/2.428 secs] [Times: user=3.44 sys=0.49, real=2.42 secs]
- *  (concurrent mode failure): 1218548K->413373K(1465840K), 1.3656970 secs] 1229657K->413373K(1581168K), [CMS Perm : 83805K->80520K(83968K)], 1.3659420 secs] [Times: user=1.33 sys=0.01, real=1.37 secs]
+ *  (concurrent mode failure): 1218548K->413373K(1465840K), 1.3656970 secs] 1229657K->413373K(1581168K), [CMS Perm : 83805K->80520K(83968K)], 1.3659420 secs] [Times: user=1.33 sys=0.01, real=1.37 secs]
  * 
* *

@@ -84,16 +85,18 @@ *

* *
- * 44.684: [Full GC44.684: [CMS (concurrent mode failure): 1218548K->413373K(1465840K), 1.3656970 secs] 1229657K->413373K(1581168K), [CMS Perm : 83805K->80520K(83968K)], 1.3659420 secs] [Times: user=1.33 sys=0.01, real=1.37 secs]
+ * 44.684: [Full GC44.684: [CMS (concurrent mode failure): 1218548K->413373K(1465840K), 1.3656970 secs] 1229657K->413373K(1581168K), [CMS Perm : 83805K->80520K(83968K)], 1.3659420 secs] [Times: user=1.33 sys=0.01, real=1.37 secs]
  * 44.877: [CMS-concurrent-mark: 1.508/2.428 secs] [Times: user=3.44 sys=0.49, real=2.42 secs]
+ * 
* *

- * 4) {@link org.eclipselabs.garbagecat.domain.jdk.ParNewEvent} combined with {@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} with trigger and space after trigger: + * 4) {@link org.eclipselabs.garbagecat.domain.jdk.ParNewEvent} combined with + * {@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} with trigger and space after trigger: *

* *
  * 45.574: [GC (Allocation Failure) 45.574: [ParNew45.670: [CMS-concurrent-abortable-preclean: 3.276/4.979 secs] [Times: user=7.75 sys=0.28, real=4.98 secs]
- * : 619008K->36352K(619008K), 0.2165661 secs] 854952K->363754K(4157952K), 0.2168066 secs] [Times: user=0.30 sys=0.00, real=0.22 secs]
+ * : 619008K->36352K(619008K), 0.2165661 secs] 854952K->363754K(4157952K), 0.2168066 secs] [Times: user=0.30 sys=0.00, real=0.22 secs]
  * 
* *

@@ -101,18 +104,18 @@ *

* *
- * 45.574: [GC (Allocation Failure) 45.574: [ParNew: 619008K->36352K(619008K), 0.2165661 secs] 854952K->363754K(4157952K), 0.2168066 secs] [Times: user=0.30 sys=0.00, real=0.22 secs]
+ * 45.574: [GC (Allocation Failure) 45.574: [ParNew: 619008K->36352K(619008K), 0.2165661 secs] 854952K->363754K(4157952K), 0.2168066 secs] [Times: user=0.30 sys=0.00, real=0.22 secs]
  * 45.670: [CMS-concurrent-abortable-preclean: 3.276/4.979 secs] [Times: user=7.75 sys=0.28, real=4.98 secs]
  * 
* *

- * 5) JDK 8 {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldConcurrentModeFailureEvent} combined with - * {@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} across 2 lines: + * 5) JDK 8 {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldEvent} with concurrent mode failure trigger + * combined with {@link org.eclipselabs.garbagecat.domain.jdk.CmsConcurrentEvent} across 2 lines: *

* *
  * 706.707: [Full GC (Allocation Failure) 706.708: [CMS709.137: [CMS-concurrent-mark: 3.381/5.028 secs] [Times: user=23.92 sys=3.02, real=5.03 secs]
- *  (concurrent mode failure): 2655937K->2373842K(2658304K), 11.6746550 secs] 3973407K->2373842K(4040704K), [Metaspace: 72496K->72496K(1118208K)] icms_dc=77 , 11.6770830 secs] [Times: user=14.05 sys=0.02,
+ *  (concurrent mode failure): 2655937K->2373842K(2658304K), 11.6746550 secs] 3973407K->2373842K(4040704K), [Metaspace: 72496K->72496K(1118208K)] icms_dc=77 , 11.6770830 secs] [Times: user=14.05 sys=0.02,
  * 
* *

@@ -120,7 +123,7 @@ *

* *
- * 706.707: [Full GC (Allocation Failure) 706.708: [CMS (concurrent mode failure): 2655937K->2373842K(2658304K), 11.6746550 secs] 3973407K->2373842K(4040704K), [Metaspace: 72496K->72496K(1118208K)] icms_dc=77 , 11.6770830 secs] [Times: user=14.05 sys=0.02, real=11.68 secs]
+ * 706.707: [Full GC (Allocation Failure) 706.708: [CMS (concurrent mode failure): 2655937K->2373842K(2658304K), 11.6746550 secs] 3973407K->2373842K(4040704K), [Metaspace: 72496K->72496K(1118208K)] icms_dc=77 , 11.6770830 secs] [Times: user=14.05 sys=0.02, real=11.68 secs]
  * 709.137: [CMS-concurrent-mark: 3.381/5.028 secs] [Times: user=23.92 sys=3.02, real=5.03 secs]
  * 
* @@ -130,8 +133,8 @@ *

* *
- * 719.519: [GC (Allocation Failure) 719.521: [ParNew: 1382400K->1382400K(1382400K), 0.0000470 secs]719.521: [CMS722.601: [CMS-concurrent-mark: 3.567/3.633 secs] [Times: user=10.91 sys=0.69, real=3.63 secs]
- *  (concurrent mode failure): 2542828K->2658278K(2658304K), 12.3447910 secs] 3925228K->2702358K(4040704K), [Metaspace: 72175K->72175K(1118208K)] icms_dc=100 , 12.3480570 secs] [Times: user=15.38 sys=0.02, real=12.35 secs]
+ * 719.519: [GC (Allocation Failure) 719.521: [ParNew: 1382400K->1382400K(1382400K), 0.0000470 secs]719.521: [CMS722.601: [CMS-concurrent-mark: 3.567/3.633 secs] [Times: user=10.91 sys=0.69, real=3.63 secs]
+ *  (concurrent mode failure): 2542828K->2658278K(2658304K), 12.3447910 secs] 3925228K->2702358K(4040704K), [Metaspace: 72175K->72175K(1118208K)] icms_dc=100 , 12.3480570 secs] [Times: user=15.38 sys=0.02, real=12.35 secs]
  * 
* *

@@ -139,7 +142,7 @@ *

* *
- * 719.519: [GC (Allocation Failure) 719.521: [ParNew: 1382400K->1382400K(1382400K), 0.0000470 secs] (concurrent mode failure): 2542828K->2658278K(2658304K), 12.3447910 secs] 3925228K->2702358K(4040704K), [Metaspace: 72175K->72175K(1118208K)] icms_dc=100 , 12.3480570 secs] [Times: user=15.38 sys=0.02, real=12.35 secs]
+ * 719.519: [GC (Allocation Failure) 719.521: [ParNew: 1382400K->1382400K(1382400K), 0.0000470 secs] (concurrent mode failure): 2542828K->2658278K(2658304K), 12.3447910 secs] 3925228K->2702358K(4040704K), [Metaspace: 72175K->72175K(1118208K)] icms_dc=100 , 12.3480570 secs] [Times: user=15.38 sys=0.02, real=12.35 secs]
  * 719.521: [CMS722.601: [CMS-concurrent-mark: 3.567/3.633 secs] [Times: user=10.91 sys=0.69, real=3.63 secs]
  * 
* diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/DateStampPrefixPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/DateStampPrefixPreprocessAction.java index 9aeb4338..7ce56714 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/DateStampPrefixPreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/DateStampPrefixPreprocessAction.java @@ -41,13 +41,13 @@ *

* *
- * 2010-04-16T12:11:18.979+0200: 84.335: [GC 84.336: [ParNew: 273152K->858K(341376K), 0.0030008 secs] 273152K->858K(980352K), 0.0031183 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
+ * 2010-04-16T12:11:18.979+0200: 84.335: [GC 84.336: [ParNew: 273152K->858K(341376K), 0.0030008 secs] 273152K->858K(980352K), 0.0031183 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
  * 
* * Preprocessed: * *
- * 84.335: [GC 84.336: [ParNew: 273152K->858K(341376K), 0.0030008 secs] 273152K->858K(980352K), 0.0031183 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
+ * 84.335: [GC 84.336: [ParNew: 273152K->858K(341376K), 0.0030008 secs] 273152K->858K(980352K), 0.0031183 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
  * 
* *

@@ -55,13 +55,13 @@ *

* *
- * 2013-12-09T16:18:17.813+0000: 13.086: [GC2013-12-09T16:18:17.813+0000: 13.086: [ParNew: 272640K->33532K(306688K), 0.0381419 secs] 272640K->33532K(1014528K), 0.0383306 secs] [Times: user=0.11 sys=0.02, real=0.04 secs]
+ * 2013-12-09T16:18:17.813+0000: 13.086: [GC2013-12-09T16:18:17.813+0000: 13.086: [ParNew: 272640K->33532K(306688K), 0.0381419 secs] 272640K->33532K(1014528K), 0.0383306 secs] [Times: user=0.11 sys=0.02, real=0.04 secs]
  * 
* * Preprocessed: * *
- * 13.086: [GC 13.086: [ParNew: 272640K->33532K(306688K), 0.0381419 secs] 272640K->33532K(1014528K), 0.0383306 secs] [Times: user=0.11 sys=0.02, real=0.04 secs]
+ * 13.086: [GC 13.086: [ParNew: 272640K->33532K(306688K), 0.0381419 secs] 272640K->33532K(1014528K), 0.0383306 secs] [Times: user=0.11 sys=0.02, real=0.04 secs]
  * 
* *

@@ -114,7 +114,7 @@ public class DateStampPrefixPreprocessAction implements PreprocessAction { * Create event from log entry. * * @param logEntry - * The log entry. + * The log entry for the event. */ public DateStampPrefixPreprocessAction(String logEntry) { Pattern p = Pattern.compile(JdkRegEx.DATESTAMP + "(:)? ( )?(" + JdkRegEx.DATESTAMP + "(: )?)?((" diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/DateStampPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/DateStampPreprocessAction.java index c6fa5466..c1b6bf7c 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/DateStampPreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/DateStampPreprocessAction.java @@ -44,13 +44,13 @@ *

* *
- * 2010-02-26T09:32:12.486-0600: [GC [ParNew: 150784K->3817K(169600K), 0.0328800 secs] 150784K->3817K(1029760K), 0.0329790 secs] [Times: user=0.00 sys=0.00, real=0.03 secs]
+ * 2010-02-26T09:32:12.486-0600: [GC [ParNew: 150784K->3817K(169600K), 0.0328800 secs] 150784K->3817K(1029760K), 0.0329790 secs] [Times: user=0.00 sys=0.00, real=0.03 secs]
  * 
* * Preprocessed: * *
- * 142.973: [GC [ParNew: 150784K->3817K(169600K), 0.0328800 secs] 150784K->3817K(1029760K), 0.0329790 secs] [Times: user=0.00 sys=0.00, real=0.03 secs]
+ * 142.973: [GC [ParNew: 150784K->3817K(169600K), 0.0328800 secs] 150784K->3817K(1029760K), 0.0329790 secs] [Times: user=0.00 sys=0.00, real=0.03 secs]
  * 
* *

diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/G1PreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/G1PreprocessAction.java index 7262693e..3423571a 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/G1PreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/G1PreprocessAction.java @@ -65,7 +65,7 @@ * [Clear CT: 0.0 ms] * [Other: 0.1 ms] * [Choose CSet: 0.0 ms] - * [ 8192K->2112K(59M)] + * [ 8192K->2112K(59M)] * [Times: user=0.01 sys=0.00, real=0.01 secs] *

* @@ -74,7 +74,7 @@ *

* *
- * 0.304: [GC pause (young), 0.00376500 secs] 8192K->2112K(59M) [Times: user=0.01 sys=0.00, real=0.01 secs]
+ * 0.304: [GC pause (young), 0.00376500 secs] 8192K->2112K(59M) [Times: user=0.01 sys=0.00, real=0.01 secs]
  * 
* *

@@ -103,7 +103,7 @@ * [Ref Proc: 7.9 ms] * [Ref Enq: 0.1 ms] * [Free CSet: 0.0 ms] - * [Eden: 128.0M(128.0M)->0.0B(112.0M) Survivors: 0.0B->16.0M Heap: 128.0M(30.0G)->24.9M(30.0G)] + * [Eden: 128.0M(128.0M)->0.0B(112.0M) Survivors: 0.0B->16.0M Heap: 128.0M(30.0G)->24.9M(30.0G)] * [Times: user=0.09 sys=0.02, real=0.03 secs] *

* @@ -112,7 +112,7 @@ *

* *
- * 2.192: [GC pause (G1 Evacuation Pause) (young), 0.0209631 secs] 128.0M->24.9M(30.0G) [Times: user=0.09 sys=0.02, real=0.03 secs]
+ * 2.192: [GC pause (G1 Evacuation Pause) (young), 0.0209631 secs] 128.0M->24.9M(30.0G) [Times: user=0.09 sys=0.02, real=0.03 secs]
  * 
* *

@@ -142,7 +142,7 @@ * [Ref Proc: 8.0 ms] * [Ref Enq: 0.1 ms] * [Free CSet: 0.0 ms] - * [Eden: 112.0M(112.0M)->0.0B(112.0M) Survivors: 16.0M->16.0M Heap: 415.0M(30.0G)->313.0M(30.0G)] + * [Eden: 112.0M(112.0M)->0.0B(112.0M) Survivors: 16.0M->16.0M Heap: 415.0M(30.0G)->313.0M(30.0G)] * [Times: user=0.01 sys=0.00, real=0.02 secs] *

* @@ -151,7 +151,7 @@ *

* *
- * 5.293: [GC pause (GCLocker Initiated GC) (young), 0.0176868 secs] 415M->313M(30720M) [Times: user=0.01 sys=0.00, real=0.02 secs]
+ * 5.293: [GC pause (GCLocker Initiated GC) (young), 0.0176868 secs] 415M->313M(30720M) [Times: user=0.01 sys=0.00, real=0.02 secs]
  * 
* *

@@ -203,8 +203,9 @@ * [Ref Proc: 0.2 ms] * [Ref Enq: 0.0 ms] * [Free CSet: 1.9 ms] - * [Eden: 112.0M(112.0M)->0.0B(112.0M) Survivors: 16.0M->16.0M Heap: 12.9G(30.0G)->11.3G(30.0G)] + * [Eden: 112.0M(112.0M)->0.0B(112.0M) Survivors: 16.0M->16.0M Heap: 12.9G(30.0G)->11.3G(30.0G)] * [Times: user=0.19 sys=0.00, real=0.05 secs] + *

* *

* Preprocessed: @@ -214,19 +215,21 @@ * 2971.469: [GC remark, 0.2274544 secs] [Times: user=0.22 sys=0.00, real=0.22 secs] * * + *

* 6) JDK8 GC Cleanup: *

* *
- * 2972.698: [GC cleanup 13G->12G(30G), 0.0358748 secs]
+ * 2972.698: [GC cleanup 13G->12G(30G), 0.0358748 secs]
  *  [Times: user=0.19 sys=0.00, real=0.03 secs]
+ * 
* *

* Preprocessed: *

* *
- * 2972.698: [GC cleanup 13G->12G(30G), 0.0358748 secs] [Times: user=0.19 sys=0.00, real=0.03 secs]
+ * 2972.698: [GC cleanup 13G->12G(30G), 0.0358748 secs] [Times: user=0.19 sys=0.00, real=0.03 secs]
  * 
* *

@@ -234,8 +237,8 @@ *

* *
- * 2016-02-09T06:21:30.379-0500: 27999.141: [Full GC 18G->4153M(26G), 10.1760410 secs]
- *    [Eden: 0.0B(1328.0M)->0.0B(15.6G) Survivors: 0.0B->0.0B Heap: 18.9G(26.0G)->4153.8M(26.0G)]
+ * 2016-02-09T06:21:30.379-0500: 27999.141: [Full GC 18G->4153M(26G), 10.1760410 secs]
+ *    [Eden: 0.0B(1328.0M)->0.0B(15.6G) Survivors: 0.0B->0.0B Heap: 18.9G(26.0G)->4153.8M(26.0G)]
  * 
* *

@@ -506,7 +509,7 @@ public class G1PreprocessAction implements PreprocessAction { * @param entangledLogLines * Log lines to be output out of order. */ - public G1PreprocessAction(String priorLogEntry, String logEntry, String nextLogEntr, + public G1PreprocessAction(String priorLogEntry, String logEntry, String nextLogEntry, List entangledLogLines) { // Beginning logging diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/GcTimeLimitExceededPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/GcTimeLimitExceededPreprocessAction.java index 4d819429..02e3fe89 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/GcTimeLimitExceededPreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/GcTimeLimitExceededPreprocessAction.java @@ -41,7 +41,7 @@ *

* *
- * 3743.645: [Full GC [PSYoungGen: 419840K->415020K(839680K)] [PSOldGen: 5008922K->5008922K(5033984K)] 5428762K->5423942K(5873664K) [PSPermGen: 193275K->193275K(262144K)]      GC time would exceed GCTimeLimit of 98%
+ * 3743.645: [Full GC [PSYoungGen: 419840K->415020K(839680K)] [PSOldGen: 5008922K->5008922K(5033984K)] 5428762K->5423942K(5873664K) [PSPermGen: 193275K->193275K(262144K)]      GC time would exceed GCTimeLimit of 98%
  * , 33.6887649 secs] [Times: user=33.68 sys=0.02, real=33.69 secs]
  * 
* @@ -50,7 +50,7 @@ *

* *
- * 3743.645: [Full GC [PSYoungGen: 419840K->415020K(839680K)] [PSOldGen: 5008922K->5008922K(5033984K)] 5428762K->5423942K(5873664K) [PSPermGen: 193275K->193275K(262144K)], 33.6887649 secs] [Times: user=33.68 sys=0.02, real=33.69 secs]
+ * 3743.645: [Full GC [PSYoungGen: 419840K->415020K(839680K)] [PSOldGen: 5008922K->5008922K(5033984K)] 5428762K->5423942K(5873664K) [PSPermGen: 193275K->193275K(262144K)], 33.6887649 secs] [Times: user=33.68 sys=0.02, real=33.69 secs]
  * 
* *

@@ -59,7 +59,7 @@ *

* *
- * 3924.453: [Full GC [PSYoungGen: 419840K->418436K(839680K)] [PSOldGen: 5008601K->5008601K(5033984K)] 5428441K->5427038K(5873664K) [PSPermGen: 193278K->193278K(262144K)]      GC time is exceeding GCTimeLimit of 98%
+ * 3924.453: [Full GC [PSYoungGen: 419840K->418436K(839680K)] [PSOldGen: 5008601K->5008601K(5033984K)] 5428441K->5427038K(5873664K) [PSPermGen: 193278K->193278K(262144K)]      GC time is exceeding GCTimeLimit of 98%
  * 
* *

@@ -68,7 +68,7 @@ *

* *
- * 52767.809: [Full GC [PSYoungGen: 109294K->94333K(184960K)] [ParOldGen: 1307971K->1307412K(1310720K)] 1417265K->1401746K(1495680K) [PSPermGen: 113654K->113646K(196608K)]        GC time is exceeding GCTimeLimit of 98%
+ * 52767.809: [Full GC [PSYoungGen: 109294K->94333K(184960K)] [ParOldGen: 1307971K->1307412K(1310720K)] 1417265K->1401746K(1495680K) [PSPermGen: 113654K->113646K(196608K)]        GC time is exceeding GCTimeLimit of 98%
  * 
* * @author Mike Millson @@ -99,6 +99,9 @@ public class GcTimeLimitExceededPreprocessAction implements PreprocessAction { /** * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public GcTimeLimitExceededPreprocessAction(String logEntry) { Matcher matcher = PATTERN1.matcher(logEntry); @@ -127,8 +130,7 @@ public String getName() { * @param logLine * The log line to test. * @param priorLogLine - * The last log entry processed. Required due to sharing same duration line as - * {@org.eclipselabs.garbagecat.preprocess.jdk.G1PrintGcDetailsPreprocessAction}. + * The last log entry processed. * @return true if the log line matches the event pattern, false otherwise. */ public static final boolean match(String logLine, String priorLogLine) { diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ParNewCmsConcurrentPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ParNewCmsConcurrentPreprocessAction.java index b9d13fc6..a8e0c30d 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ParNewCmsConcurrentPreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ParNewCmsConcurrentPreprocessAction.java @@ -32,7 +32,7 @@ * *
  * 2210.281: [GC 2210.282: [ParNew2210.314: [CMS-concurrent-abortable-preclean: 0.043/0.144 secs] [Times: user=0.58 sys=0.03, real=0.14 secs]
- * : 212981K->3156K(242304K), 0.0364435 secs] 4712182K->4502357K(4971420K), 0.0368807 secs] [Times: user=0.18 sys=0.02, real=0.04 secs]
+ * : 212981K->3156K(242304K), 0.0364435 secs] 4712182K->4502357K(4971420K), 0.0368807 secs] [Times: user=0.18 sys=0.02, real=0.04 secs]
  * 
* *

@@ -40,7 +40,7 @@ *

* *
- * 2210.281: [GC 2210.282: [ParNew2210.314: [CMS-concurrent-abortable-preclean: 0.043/0.144 secs]: 212981K->3156K(242304K), 0.0364435 secs] 4712182K->4502357K(4971420K), 0.0368807 secs] [Times: user=0.18 sys=0.02, real=0.04 secs]
+ * 2210.281: [GC 2210.282: [ParNew2210.314: [CMS-concurrent-abortable-preclean: 0.043/0.144 secs]: 212981K->3156K(242304K), 0.0364435 secs] 4712182K->4502357K(4971420K), 0.0368807 secs] [Times: user=0.18 sys=0.02, real=0.04 secs]
  * 
* * @author Mike Millson @@ -71,6 +71,9 @@ public class ParNewCmsConcurrentPreprocessAction implements PreprocessAction { /** * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ParNewCmsConcurrentPreprocessAction(String logEntry) { Matcher matcher = PATTERN1.matcher(logEntry); diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/PrintHeapAtGcPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/PrintHeapAtGcPreprocessAction.java index d8119cea..f010c5bb 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/PrintHeapAtGcPreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/PrintHeapAtGcPreprocessAction.java @@ -43,7 +43,7 @@ * to space 704K, 0% used [0x00002aac0a950000, 0x00002aac0a950000, 0x00002aac0aa00000) * concurrent mark-sweep generation total 3407872K, used 1640998K [0x00002aac0aab0000, 0x00002aacdaab0000, 0x00002aacdaab0000) * concurrent-mark-sweep perm gen total 786432K, used 507386K [0x00002aacdaab0000, 0x00002aad0aab0000, 0x00002aad0aab0000) - * 49830.934: [CMS: 1640998K->1616248K(3407872K), 11.0964500 secs] 1951125K->1616248K(4193600K), [CMS Perm : 507386K->499194K(786432K)]Heap after gc invocations=147: + * 49830.934: [CMS: 1640998K->1616248K(3407872K), 11.0964500 secs] 1951125K->1616248K(4193600K), [CMS Perm : 507386K->499194K(786432K)]Heap after gc invocations=147: * par new generation total 785728K, used 0K [0x00002aabdaab0000, 0x00002aac0aab0000, 0x00002aac0aab0000) * eden space 785024K, 0% used [0x00002aabdaab0000, 0x00002aabdaab0000, 0x00002aac0a950000) * from space 704K, 0% used [0x00002aac0aa00000, 0x00002aac0aa00000, 0x00002aac0aab0000) @@ -59,7 +59,7 @@ *

* *
- * 49830.933: [Full GC 49830.934: [CMS: 1640998K->1616248K(3407872K), 11.0964500 secs] 1951125K->1616248K(4193600K), [CMS Perm : 507386K->499194K(786432K)], 11.0980780 secs]
+ * 49830.933: [Full GC 49830.934: [CMS: 1640998K->1616248K(3407872K), 11.0964500 secs] 1951125K->1616248K(4193600K), [CMS Perm : 507386K->499194K(786432K)], 11.0980780 secs]
  * 
* *

@@ -74,8 +74,8 @@ * to space 192K, 0% used [0x90b60000, 0x90b60000, 0x90b90000) * concurrent mark-sweep generation total 1179648K, used 1147900K [0x90b90000, 0xd8b90000, 0xd8b90000) * concurrent-mark-sweep perm gen total 262144K, used 71227K [0xd8b90000, 0xe8b90000, 0xf0b90000) - * 27067.966: [ParNew: 261760K->261760K(261952K), 0.0000160 secs]27067.966: [CMS27067.966: [CMS-concurrent-abortable-preclean: 2.272/29.793 secs] - * (concurrent mode failure): 1147900K->1155037K(1179648K), 7.3953900 secs] 1409660K->1155037K(1441600K)Heap after gc invocations=499: + * 27067.966: [ParNew: 261760K->261760K(261952K), 0.0000160 secs]27067.966: [CMS27067.966: [CMS-concurrent-abortable-preclean: 2.272/29.793 secs] + * (concurrent mode failure): 1147900K->1155037K(1179648K), 7.3953900 secs] 1409660K->1155037K(1441600K)Heap after gc invocations=499: * par new generation total 261952K, used 0K [0x80b90000, 0x90b90000, 0x90b90000) * eden space 261760K, 0% used [0x80b90000, 0x80b90000, 0x90b30000) * from space 192K, 0% used [0x90b30000, 0x90b30000, 0x90b60000) @@ -91,11 +91,11 @@ *

* *
- * 27067.966: [GC 27067.966: [ParNew: 261760K->261760K(261952K), 0.0000160 secs]27067.966: [CMS27067.966: [CMS-concurrent-abortable-preclean: 2.272/29.793 secs] (concurrent mode failure): 1147900K->1155037K(1179648K), 7.3953900 secs] 1409660K->1155037K(1441600K), 7.3957620 secs]
+ * 27067.966: [GC 27067.966: [ParNew: 261760K->261760K(261952K), 0.0000160 secs]27067.966: [CMS27067.966: [CMS-concurrent-abortable-preclean: 2.272/29.793 secs] (concurrent mode failure): 1147900K->1155037K(1179648K), 7.3953900 secs] 1409660K->1155037K(1441600K), 7.3957620 secs]
  * 
* *

- * 3) Underlying {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldConcurrentModeFailureEvent}: + * 3) Underlying {@link org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldEvent} with concurrent mode failure trigger: *

* *
@@ -107,7 +107,7 @@
  *  concurrent mark-sweep generation total 1179648K, used 1179601K [0x90b90000, 0xd8b90000, 0xd8b90000)
  *  concurrent-mark-sweep perm gen total 262144K, used 71172K [0xd8b90000, 0xe8b90000, 0xf0b90000)
  * 28282.075: [CMS28284.687: [CMS-concurrent-preclean: 3.706/3.706 secs]
- *  (concurrent mode failure): 1179601K->1179648K(1179648K), 10.7510650 secs] 1441361K->1180553K(1441600K), [CMS Perm : 71172K->71171K(262144K)]Heap after gc invocations=529:
+ *  (concurrent mode failure): 1179601K->1179648K(1179648K), 10.7510650 secs] 1441361K->1180553K(1441600K), [CMS Perm : 71172K->71171K(262144K)]Heap after gc invocations=529:
  *  par new generation   total 261952K, used 905K [0x80b90000, 0x90b90000, 0x90b90000)
  *   eden space 261760K,   0% used [0x80b90000, 0x80c727c0, 0x90b30000)
  *   from space 192K,   0% used [0x90b60000, 0x90b60000, 0x90b90000)
@@ -123,7 +123,7 @@
  * 

* *
- * 28282.075: [Full GC 28282.075 (concurrent mode failure): 1179601K->1179648K(1179648K), 10.7510650 secs] 1441361K->1180553K(1441600K), [CMS Perm : 71172K->71171K(262144K)], 10.7515460 secs]
+ * 28282.075: [Full GC 28282.075 (concurrent mode failure): 1179601K->1179648K(1179648K), 10.7510650 secs] 1441361K->1180553K(1441600K), [CMS Perm : 71172K->71171K(262144K)], 10.7515460 secs]
  * 
* *

@@ -138,8 +138,8 @@ * to space 192K, 0% used [0x90b30000, 0x90b30000, 0x90b60000) * concurrent mark-sweep generation total 1179648K, used 1160073K [0x90b90000, 0xd8b90000, 0xd8b90000) * concurrent-mark-sweep perm gen total 262144K, used 71172K [0xd8b90000, 0xe8b90000, 0xf0b90000) - * 28308.701: [ParNew (promotion failed): 261951K->261951K(261952K), 0.7470390 secs]28309.448: [CMS28312.544: [CMS-concurrent-mark: 5.114/5.863 secs] - * (concurrent mode failure): 1179212K->1179647K(1179648K), 10.7159890 secs] 1422025K->1183557K(1441600K)Heap after gc invocations=530: + * 28308.701: [ParNew (promotion failed): 261951K->261951K(261952K), 0.7470390 secs]28309.448: [CMS28312.544: [CMS-concurrent-mark: 5.114/5.863 secs] + * (concurrent mode failure): 1179212K->1179647K(1179648K), 10.7159890 secs] 1422025K->1183557K(1441600K)Heap after gc invocations=530: * par new generation total 261952K, used 3909K [0x80b90000, 0x90b90000, 0x90b90000) * eden space 261760K, 1% used [0x80b90000, 0x80f614f8, 0x90b30000) * from space 192K, 0% used [0x90b60000, 0x90b60000, 0x90b90000) @@ -155,7 +155,7 @@ *

* *
- * 28308.701: [GC 28308.701: [ParNew (promotion failed): 261951K->261951K(261952K), 0.7470390 secs]28309.448: [CMS28312.544: [CMS-concurrent-mark: 5.114/5.863 secs] (concurrent mode failure): 1179212K->1179647K(1179648K), 10.7159890 secs] 1422025K->1183557K(1441600K), 11.4633890 secs]
+ * 28308.701: [GC 28308.701: [ParNew (promotion failed): 261951K->261951K(261952K), 0.7470390 secs]28309.448: [CMS28312.544: [CMS-concurrent-mark: 5.114/5.863 secs] (concurrent mode failure): 1179212K->1179647K(1179648K), 10.7159890 secs] 1422025K->1183557K(1441600K), 11.4633890 secs]
  * 
* *

@@ -170,7 +170,7 @@ * to space 18816K, 0% used [0xbb1f0000, 0xbb1f0000, 0xbc450000) * concurrent mark-sweep generation total 860160K, used 0K [0xbc450000, 0xf0c50000, 0xf0c50000) * concurrent-mark-sweep perm gen total 11392K, used 11291K [0xf0c50000, 0xf1770000, 0xf4c50000) - * 2010-02-26T08:31:51.990-0600: [GC [ParNew: 150784K->4291K(169600K), 0.0246670 secs] 150784K->4291K(1029760K), 0.0247500 secs] [Times: user=0.06 sys=0.01, real=0.02 secs] + * 2010-02-26T08:31:51.990-0600: [GC [ParNew: 150784K->4291K(169600K), 0.0246670 secs] 150784K->4291K(1029760K), 0.0247500 secs] [Times: user=0.06 sys=0.01, real=0.02 secs] * Heap after GC invocations=1 (full 0): * par new generation total 169600K, used 4291K [0xb0c50000, 0xbc450000, 0xbc450000) * eden space 150784K, 0% used [0xb0c50000, 0xb0c50000, 0xb9f90000) @@ -186,7 +186,7 @@ *

* *
- * 19.494: [ParNew: 308477K->25361K(309696K), 0.0911180 secs] 326271K->75121K(1014208K)Heap after gc invocations=4:
+ * 19.494: [ParNew: 308477K->25361K(309696K), 0.0911180 secs] 326271K->75121K(1014208K)Heap after gc invocations=4:
  *  par new generation   total 309696K, used 25361K [0x00002aab1aab0000, 0x00002aab2fab0000, 0x00002aab2fab0000)
  *   eden space 275328K,   0% used [0x00002aab1aab0000, 0x00002aab1aab0000, 0x00002aab2b790000)
  *   from space 34368K,  73% used [0x00002aab2b790000, 0x00002aab2d0544a8, 0x00002aab2d920000)
@@ -314,7 +314,7 @@ public class PrintHeapAtGcPreprocessAction implements PreprocessAction {
      * Create event from log entry.
      * 
      * @param logEntry
-     *            The log entry being processed.
+     *            The log entry for the event.
      */
     public PrintHeapAtGcPreprocessAction(String logEntry) {
         // Handle split logging. Keep parts of log lines needed for re-composing.
diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/PrintTenuringDistributionPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/PrintTenuringDistributionPreprocessAction.java
index c388f48c..a3d05465 100644
--- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/PrintTenuringDistributionPreprocessAction.java
+++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/PrintTenuringDistributionPreprocessAction.java
@@ -40,7 +40,7 @@
  * Desired survivor size 2228224 bytes, new threshold 1 (max 15)
  * - age   1:    3177664 bytes,    3177664 total
  * - age   2:    1278784 bytes,    4456448 total
- * : 36825K->4352K(39424K), 0.0224830 secs] 44983K->14441K(126848K), 0.0225800 secs]
+ * : 36825K->4352K(39424K), 0.0224830 secs] 44983K->14441K(126848K), 0.0225800 secs]
  * 
* *

@@ -48,7 +48,7 @@ *

* *
- * 10.204: [GC 10.204: [DefNew: 36825K->4352K(39424K), 0.0224830 secs] 44983K->14441K(126848K), 0.0225800 secs]
+ * 10.204: [GC 10.204: [DefNew: 36825K->4352K(39424K), 0.0224830 secs] 44983K->14441K(126848K), 0.0225800 secs]
  * 
* *

@@ -62,8 +62,8 @@ * - age 2: 16401312 bytes, 108915000 total * - age 3: 19123776 bytes, 128038776 total * - age 4: 6178856 bytes, 134217632 total - * : 917504K->917504K(917504K), 5.5887120 secs]877375.047: [CMS877378.691: [CMS-concurrent-mark: 5.714/11.380 secs] [Times: user=14.72 sys=4.81, real=11.38 secs] - * (concurrent mode failure): 1567700K->1571451K(1572864K), 14.6444240 secs] 2370842K->1694149K(2490368K), [CMS Perm : 46359K->46354K(77352K)], 20.2345470 secs] [Times: user=22.17 sys=4.56, real=20.23 secs] + * : 917504K->917504K(917504K), 5.5887120 secs]877375.047: [CMS877378.691: [CMS-concurrent-mark: 5.714/11.380 secs] [Times: user=14.72 sys=4.81, real=11.38 secs] + * (concurrent mode failure): 1567700K->1571451K(1572864K), 14.6444240 secs] 2370842K->1694149K(2490368K), [CMS Perm : 46359K->46354K(77352K)], 20.2345470 secs] [Times: user=22.17 sys=4.56, real=20.23 secs] *

* *

@@ -71,7 +71,7 @@ *

* *
- * 877369.458: [GC 877369.459: [ParNew (promotion failed): 917504K->917504K(917504K), 5.5887120 secs]877375.047: [CMS877378.691: [CMS-concurrent-mark: 5.714/11.380 secs] (concurrent mode failure): 1567700K->1571451K(1572864K), 14.6444240 secs] 2370842K->1694149K(2490368K), [CMS Perm : 46359K->46354K(77352K)], 20.2345470 secs] [Times: user=22.17 sys=4.56, real=20.23 secs]
+ * 877369.458: [GC 877369.459: [ParNew (promotion failed): 917504K->917504K(917504K), 5.5887120 secs]877375.047: [CMS877378.691: [CMS-concurrent-mark: 5.714/11.380 secs] (concurrent mode failure): 1567700K->1571451K(1572864K), 14.6444240 secs] 2370842K->1694149K(2490368K), [CMS Perm : 46359K->46354K(77352K)], 20.2345470 secs] [Times: user=22.17 sys=4.56, real=20.23 secs]
  * 
* *

@@ -81,7 +81,7 @@ *

  * 10.392: [GC
  * Desired survivor size 497025024 bytes, new threshold 7 (max 15)
- *  [PSYoungGen: 970752K->104301K(1456128K)] 970752K->104301K(3708928K), 0.1992940 secs] [Times: user=0.68 sys=0.05, real=0.20 secs]
+ *  [PSYoungGen: 970752K->104301K(1456128K)] 970752K->104301K(3708928K), 0.1992940 secs] [Times: user=0.68 sys=0.05, real=0.20 secs]
  * 
* *

@@ -89,7 +89,7 @@ *

* *
- * 10.392: [GC [PSYoungGen: 970752K->104301K(1456128K)] 970752K->104301K(3708928K), 0.1992940 secs] [Times: user=0.68 sys=0.05, real=0.20 secs]
+ * 10.392: [GC [PSYoungGen: 970752K->104301K(1456128K)] 970752K->104301K(3708928K), 0.1992940 secs] [Times: user=0.68 sys=0.05, real=0.20 secs]
  * 
* *

@@ -100,7 +100,7 @@ * 2016-07-24T07:11:53.101-0400: 7.729: [GC2016-07-24T07:11:53.101-0400: 7.729: [ParNew * Desired survivor size 67108864 bytes, new threshold 1 (max 15) * - age 1: 108710016 bytes, 108710016 total - * : 889671K->121719K(917504K), 0.2231670 secs] 889671K->160630K(6160384K), 0.2232600 secs] [Times: user=0.36 sys=0.01, real=0.22 secs] + * : 889671K->121719K(917504K), 0.2231670 secs] 889671K->160630K(6160384K), 0.2232600 secs] [Times: user=0.36 sys=0.01, real=0.22 secs] * * *

@@ -108,7 +108,7 @@ *

* *
- * 7.729: [GC7.729: [ParNew: 889671K->121719K(917504K), 0.2231670 secs] 889671K->160630K(6160384K), 0.2232600 secs] [Times: user=0.36 sys=0.01, real=0.22 secs]
+ * 7.729: [GC7.729: [ParNew: 889671K->121719K(917504K), 0.2231670 secs] 889671K->160630K(6160384K), 0.2232600 secs] [Times: user=0.36 sys=0.01, real=0.22 secs]
  * 
* *

@@ -120,7 +120,7 @@ * 2.372: [GC (Allocation Failure) 2.372: [ParNew * Desired survivor size 78643200 bytes, new threshold 15 (max 15) * - age 1: 28758920 bytes, 28758920 total - * : 1228800K->28198K(1382400K), 0.0440820 secs] 1228800K->28198K(6137856K), 0.0443030 secs] [Times: user=0.34 sys=0.02, real=0.05 secs] + * : 1228800K->28198K(1382400K), 0.0440820 secs] 1228800K->28198K(6137856K), 0.0443030 secs] [Times: user=0.34 sys=0.02, real=0.05 secs] * * *

@@ -128,7 +128,7 @@ *

* *
- * 2.372: [GC (Allocation Failure) 2.372: [ParNew: 1228800K->28198K(1382400K), 0.0440820 secs] 1228800K->28198K(6137856K), 0.0443030 secs] [Times: user=0.34 sys=0.02, real=0.05 secs]
+ * 2.372: [GC (Allocation Failure) 2.372: [ParNew: 1228800K->28198K(1382400K), 0.0440820 secs] 1228800K->28198K(6137856K), 0.0443030 secs] [Times: user=0.34 sys=0.02, real=0.05 secs]
  * 
* * @author Mike Millson @@ -189,7 +189,7 @@ public class PrintTenuringDistributionPreprocessAction implements PreprocessActi * Create event from log entry. * * @param logEntry - * The log entry being processed. + * The log entry for the event. */ public PrintTenuringDistributionPreprocessAction(String logEntry) { // Handle split logging. Keep parts of log lines needed for diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ThreadDumpPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ThreadDumpPreprocessAction.java index 77a0184f..538d7c56 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ThreadDumpPreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/ThreadDumpPreprocessAction.java @@ -79,7 +79,7 @@ *

* *
- * - locked <0x94fa4fb0> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
+ * - locked <0x94fa4fb0> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
  * 
* *

@@ -142,7 +142,10 @@ public class ThreadDumpPreprocessAction implements PreprocessAction { private String logEntry; /** - * Create thread dump event from log entry. + * Create event from log entry. + * + * @param logEntry + * The log entry for the event. */ public ThreadDumpPreprocessAction(String logEntry) { this.logEntry = logEntry; diff --git a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/UnloadingClassPreprocessAction.java b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/UnloadingClassPreprocessAction.java index 15ecbd55..9c0df2f7 100644 --- a/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/UnloadingClassPreprocessAction.java +++ b/src/main/java/org/eclipselabs/garbagecat/preprocess/jdk/UnloadingClassPreprocessAction.java @@ -34,7 +34,7 @@ *

  * 830048.804: [Full GC 830048.804: [CMS[Unloading class sun.reflect.GeneratedConstructorAccessor73]
  * [Unloading class sun.reflect.GeneratedConstructorAccessor70]
- * : 1572185K->1070163K(1572864K), 6.8812400 secs] 2489689K->1070163K(2490368K), [CMS Perm : 46357K->46348K(77352K)], 6.8821630 secs] [Times: user=6.87 sys=0.00, real=6.88 secs]
+ * : 1572185K->1070163K(1572864K), 6.8812400 secs] 2489689K->1070163K(2490368K), [CMS Perm : 46357K->46348K(77352K)], 6.8821630 secs] [Times: user=6.87 sys=0.00, real=6.88 secs]
  * 
* *

@@ -42,7 +42,7 @@ *

* *
- * 830048.804: [Full GC 830048.804: [CMS: 1572185K->1070163K(1572864K), 6.8812400 secs] 2489689K->1070163K(2490368K), [CMS Perm : 46357K->46348K(77352K)], 6.8821630 secs] [Times: user=6.87 sys=0.00, real=6.88 secs]
+ * 830048.804: [Full GC 830048.804: [CMS: 1572185K->1070163K(1572864K), 6.8812400 secs] 2489689K->1070163K(2490368K), [CMS Perm : 46357K->46348K(77352K)], 6.8821630 secs] [Times: user=6.87 sys=0.00, real=6.88 secs]
  * 
* * @author Mike Millson diff --git a/src/main/java/org/eclipselabs/garbagecat/util/jdk/Analysis.java b/src/main/java/org/eclipselabs/garbagecat/util/jdk/Analysis.java index 535afe74..36fdbf5d 100644 --- a/src/main/java/org/eclipselabs/garbagecat/util/jdk/Analysis.java +++ b/src/main/java/org/eclipselabs/garbagecat/util/jdk/Analysis.java @@ -66,8 +66,8 @@ public class Analysis { public static final String KEY_APPLICATION_STOPPED_TIME_MISSING = "application.stopped.time.missing"; /** - * Property key for the ratio of gc time vs. stopped time showing a significant amount of stopped time (>20%) is not - * GC related. + * Property key for the ratio of gc time vs. stopped time showing a significant amount of stopped time (>20%) is + * not GC related. */ public static final String KEY_GC_STOPPED_RATIO = "gc.stopped.ratio"; diff --git a/src/main/java/org/eclipselabs/garbagecat/util/jdk/JdkMath.java b/src/main/java/org/eclipselabs/garbagecat/util/jdk/JdkMath.java index fda88892..d31d6490 100644 --- a/src/main/java/org/eclipselabs/garbagecat/util/jdk/JdkMath.java +++ b/src/main/java/org/eclipselabs/garbagecat/util/jdk/JdkMath.java @@ -87,7 +87,7 @@ public static BigDecimal convertSecsToMicros(String secs) { * * For example: Convert 987654321 987.654. * - * @param millis + * @param micros * Microseconds as a whole number. * @return Seconds rounded to 3 decimal places. */ diff --git a/src/main/java/org/eclipselabs/garbagecat/util/jdk/JdkUtil.java b/src/main/java/org/eclipselabs/garbagecat/util/jdk/JdkUtil.java index 91367276..fe89dd82 100644 --- a/src/main/java/org/eclipselabs/garbagecat/util/jdk/JdkUtil.java +++ b/src/main/java/org/eclipselabs/garbagecat/util/jdk/JdkUtil.java @@ -29,7 +29,6 @@ import org.eclipselabs.garbagecat.domain.jdk.CmsInitialMarkEvent; import org.eclipselabs.garbagecat.domain.jdk.CmsRemarkEvent; import org.eclipselabs.garbagecat.domain.jdk.CmsRemarkWithClassUnloadingEvent; -import org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldConcurrentModeFailureEvent; import org.eclipselabs.garbagecat.domain.jdk.CmsSerialOldEvent; import org.eclipselabs.garbagecat.domain.jdk.G1CleanupEvent; import org.eclipselabs.garbagecat.domain.jdk.G1ConcurrentEvent; @@ -93,15 +92,15 @@ public enum LogEventType { // PAR_NEW_CMS_SERIAL_OLD, PARALLEL_SERIAL_OLD, PARALLEL_SCAVENGE, PARALLEL_OLD_COMPACTING, CMS_SERIAL_OLD, // - CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE, CMS_REMARK_WITH_CLASS_UNLOADING, CMS_REMARK, CMS_INITIAL_MARK, + CMS_REMARK_WITH_CLASS_UNLOADING, CMS_REMARK, CMS_INITIAL_MARK, CMS_CONCURRENT, APPLICATION_CONCURRENT_TIME, // - CMS_CONCURRENT, APPLICATION_CONCURRENT_TIME, APPLICATION_STOPPED_TIME, UNKNOWN, SERIAL_SERIAL_OLD, + APPLICATION_STOPPED_TIME, UNKNOWN, SERIAL_SERIAL_OLD, SERIAL_SERIAL_OLD_PERM_DATA, VERBOSE_GC_YOUNG, // - SERIAL_SERIAL_OLD_PERM_DATA, VERBOSE_GC_YOUNG, VERBOSE_GC_OLD, TRUNCATED, PAR_NEW_PROMOTION_FAILED_TRUNCATED, + VERBOSE_GC_OLD, TRUNCATED, PAR_NEW_PROMOTION_FAILED_TRUNCATED, G1_YOUNG_PAUSE, G1_MIXED_PAUSE, G1_CONCURRENT, // - G1_YOUNG_PAUSE, G1_MIXED_PAUSE, G1_CONCURRENT, G1_YOUNG_INITIAL_MARK, G1_REMARK, G1_CLEANUP, G1_FULL_GC, + G1_YOUNG_INITIAL_MARK, G1_REMARK, G1_CLEANUP, G1_FULL_GC, HEADER_COMMAND_LINE_FLAGS, HEADER_MEMORY, // - HEADER_COMMAND_LINE_FLAGS, HEADER_MEMORY, HEADER_VERSION, PRINT_REFERENCE_GC, LOG_ROTATION + HEADER_VERSION, PRINT_REFERENCE_GC, LOG_ROTATION }; /** @@ -155,8 +154,6 @@ public static final LogEventType identifyEventType(String logLine) { return LogEventType.SERIAL_OLD; if (CmsSerialOldEvent.match(logLine)) return LogEventType.CMS_SERIAL_OLD; - if (CmsSerialOldConcurrentModeFailureEvent.match(logLine)) - return LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE; if (CmsInitialMarkEvent.match(logLine)) return LogEventType.CMS_INITIAL_MARK; if (CmsRemarkEvent.match(logLine)) @@ -260,9 +257,6 @@ public static final LogEvent parseLogLine(String logLine) { case CMS_SERIAL_OLD: event = new CmsSerialOldEvent(logLine); break; - case CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE: - event = new CmsSerialOldConcurrentModeFailureEvent(logLine); - break; case CMS_INITIAL_MARK: event = new CmsInitialMarkEvent(logLine); break; @@ -409,9 +403,6 @@ public static final BlockingEvent hydrateBlockingEvent(LogEventType eventType, S case CMS_SERIAL_OLD: event = new CmsSerialOldEvent(logEntry, timestamp, duration); break; - case CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE: - event = new CmsSerialOldConcurrentModeFailureEvent(logEntry, timestamp, duration); - break; case CMS_INITIAL_MARK: event = new CmsInitialMarkEvent(logEntry, timestamp, duration); break; @@ -489,6 +480,7 @@ public static final BlockingEvent hydrateBlockingEvent(LogEventType eventType, S /** * @param eventType + * The event type to test. * @return true if the log event is blocking, false if it is concurrent or informational. */ public static final boolean isBlocking(LogEventType eventType) { @@ -638,15 +630,13 @@ public static final String getOptionValue(String option) { } /** - * Convert {@value org.eclipselabs.garbagecat.util.jdk.JdkRegEx #SIZE_G1_DETAILS} to - * {@value org.eclipselabs.garbagecat.util.jdk.JdkRegEx #SIZE_G1}. + * Convert SIZE_G1_DETAILS to SIZE_G1. * * @param size - * The size in {@value org.eclipselabs.garbagecat.util.jdk.JdkRegEx #SIZE_G1_DETAILS} format (e.g. - * '128.0'). + * The size (e.g. '128.0'). * @param units - * The units in {@value org.eclipselabs.garbagecat.util.jdk.JdkRegEx #SIZE_G1_DETAILS} format (e.g. 'G'). - * @return The size block in {@value org.eclipselabs.garbagecat.util.jdk.JdkRegEx #SIZE_G1} format (e.g. '131072M'). + * The units (e.g. 'G'). + * @return The size block in G1 format (e.g. '131072M'). */ public static String convertSizeG1DetailsToSizeG1(final String size, final char units) { @@ -680,10 +670,10 @@ public static String convertSizeG1DetailsToSizeG1(final String size, final char } /** - * Convert {@value org.eclipselabs.garbagecat.util.jdk.JdkRegEx #OPTION_SIZE} to bytes. + * Convert JVM size option to bytes. * * @param size - * The size in {@value org.eclipselabs.garbagecat.util.jdk.JdkRegEx #OPTION_SIZE} format (e.g. '128k'). + * The size in various units (e.g. 'k'). * @return The size in bytes. */ public static long convertOptionSizeToBytes(final String size) { @@ -767,7 +757,6 @@ public static final boolean isCmsLogEventType(LogEventType eventType) { switch (eventType) { case CMS_CONCURRENT: case CMS_SERIAL_OLD: - case CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE: case CMS_INITIAL_MARK: case CMS_REMARK: case CMS_REMARK_WITH_CLASS_UNLOADING: diff --git a/src/main/java/org/eclipselabs/garbagecat/util/jdk/Jvm.java b/src/main/java/org/eclipselabs/garbagecat/util/jdk/Jvm.java index eb424dbd..bd6f032a 100644 --- a/src/main/java/org/eclipselabs/garbagecat/util/jdk/Jvm.java +++ b/src/main/java/org/eclipselabs/garbagecat/util/jdk/Jvm.java @@ -714,7 +714,7 @@ public String getJvmOption(final String regex) { } /** - * @return True if stack size >= 1024k, false otherwise. + * @return True if stack size >= 1024k, false otherwise. */ public boolean hasLargeThreadStackSize() { boolean hasLargeThreadStackSize = false; diff --git a/src/test/java/org/eclipselabs/garbagecat/domain/TestJvmRun.java b/src/test/java/org/eclipselabs/garbagecat/domain/TestJvmRun.java index 5f320c89..252e8eec 100644 --- a/src/test/java/org/eclipselabs/garbagecat/domain/TestJvmRun.java +++ b/src/test/java/org/eclipselabs/garbagecat/domain/TestJvmRun.java @@ -153,24 +153,6 @@ public void testSplitPrintHeapAtGcParNewConcurrentModeFailureEventLogging() { jvmRun.getEventTypes().contains(JdkUtil.LogEventType.PAR_NEW_CONCURRENT_MODE_FAILURE)); } - /** - * Test preprocessing PrintHeapAtGcPreprocessAction with underlying - * CmsSerialOldConcurrentModeFailureEvent. - */ - public void testSplitPrintHeapAtGcCmsSerialOldConcurrentModeFailureEventLogging() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset8.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); - Assert.assertTrue( - "Log line not recognized as " + JdkUtil.LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE.toString() - + ".", - jvmRun.getEventTypes().contains(JdkUtil.LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE)); - } - /** * Test preprocessing PrintHeapAtGcPreprocessAction with underlying * ParNewConcurrentModeFailureEvent. @@ -1049,92 +1031,6 @@ public void testG1PrintGcDetailsPreprocessActionG1YoungPauseWithG1ErgonomicsLogg jvmRun.getEventTypes().contains(LogEventType.G1_YOUNG_PAUSE)); } - /** - * Test CmsPreprocessAction for mixed PAR_NEW and CMS_CONCURRENT. - * - */ - public void testCmsPreprocessActionParNewWithConcurrent() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset58.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", - jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); - Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); - Assert.assertTrue(JdkUtil.LogEventType.PAR_NEW.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.PAR_NEW)); - Assert.assertTrue(JdkUtil.LogEventType.CMS_CONCURRENT.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.CMS_CONCURRENT)); - } - - /** - * Test CmsPreprocessAction for mixed CMS_SERIAL_OLD (concurrent mode failure) and CMS_CONCURRENT. - * - */ - public void testCmsPreprocessActionCmsSerialOldWithConcurrent() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset61.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", - jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); - Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); - Assert.assertTrue(JdkUtil.LogEventType.CMS_SERIAL_OLD.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.CMS_SERIAL_OLD)); - Assert.assertTrue(JdkUtil.LogEventType.CMS_CONCURRENT.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.CMS_CONCURRENT)); - Assert.assertTrue(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE + " analysis not identified.", - jvmRun.getAnalysisKeys().contains(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE)); - } - - /** - * Test CmsPreprocessAction for mixed CMS_SERIAL_OLD (concurrent mode failure) and CMS_CONCURRENT on - * JDK8. - * - */ - public void testCmsPreprocessActionCmsSerialOldConcurrentModeFailureJdk8() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset69.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); - Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", - jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); - Assert.assertTrue(JdkUtil.LogEventType.CMS_SERIAL_OLD.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.CMS_SERIAL_OLD)); - Assert.assertTrue(JdkUtil.LogEventType.CMS_CONCURRENT.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.CMS_CONCURRENT)); - } - - /** - * Test CmsPreprocessAction for mixed PAR_NEW_CONCURRENT_MODE_FAILURE_PERM_DATA (concurrent mode - * failure) and CMS_CONCURRENT on JDK8. - * - */ - public void testCmsPreprocessActionParNewConcurrentModeFailureJdk8() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset70.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); - Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", - jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); - Assert.assertTrue( - JdkUtil.LogEventType.PAR_NEW_CONCURRENT_MODE_FAILURE_PERM_DATA.toString() - + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.PAR_NEW_CONCURRENT_MODE_FAILURE_PERM_DATA)); - Assert.assertTrue(JdkUtil.LogEventType.CMS_CONCURRENT.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.CMS_CONCURRENT)); - } - /** * Test JVM Header parsing. * @@ -1564,58 +1460,6 @@ public void testPrintReferenceGCByOptions() { jvmRun.getAnalysisKeys().contains(Analysis.KEY_PRINT_REFERENCE_GC_ENABLED)); } - /** - * Test G1PreprocessAction to ensure it does not falsely erroneously preprocess. - * - */ - public void testG1PreprocessActionG1CleanupG1InitialMark() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset62.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", - jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); - Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); - Assert.assertTrue(JdkUtil.LogEventType.G1_CLEANUP.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.G1_CLEANUP)); - Assert.assertTrue(JdkUtil.LogEventType.G1_YOUNG_INITIAL_MARK.toString() + " collector not identified.", - jvmRun.getEventTypes().contains(LogEventType.G1_YOUNG_INITIAL_MARK)); - } - - /** - * Test G1PreprocessAction for G1_REMARK with JDK8 details. - * - */ - public void testG1PreprocessActionRemarkWithFinalizeMarkingAndUnloading() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset63.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); - Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.G1_REMARK.toString() + ".", - jvmRun.getEventTypes().contains(JdkUtil.LogEventType.G1_REMARK)); - } - - /** - * Test G1PrintGcDetailsPreprocessAction for G1_CONCURRENT string deduplication. - * - */ - public void testG1PreprocessActionConcurrentStringDeduplicatonLogging() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset64.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); - Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.G1_CONCURRENT.toString() + ".", - jvmRun.getEventTypes().contains(JdkUtil.LogEventType.G1_CONCURRENT)); - } - /** * Test if -XX:+PrintStringDeduplicationStatistics enabled by inspecting jvm options. */ @@ -1629,22 +1473,6 @@ public void testPrintStringDeduplicationStatistics() { jvmRun.getAnalysisKeys().contains(Analysis.KEY_PRINT_STRING_DEDUP_STATS_ENABLED)); } - /** - * Test G1PrintGcDetailsPreprocessAction for G1_FULL across 3 lines with details. - * - */ - public void testG1PreprocessActionG1Full3Lines() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset65.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); - Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.G1_FULL_GC.toString() + ".", - jvmRun.getEventTypes().contains(JdkUtil.LogEventType.G1_FULL_GC)); - } - /** * Test if PrintGCDetails disabled with -XX:-PrintGCDetails. */ @@ -1677,23 +1505,7 @@ public void testPrintTenuringDistributionPreprocessActionNoSpaceAfterGc() { } /** - * Test preprocessing a split ParNewPEvent with a trigger and -XX:+PrintTenuringDistribution logging - * between the initial and final lines. - */ - public void testSplitMixedTenuringParNewPromotionEventWithTriggerLogging() { - // TODO: Create File in platform independent way. - File testFile = new File("src/test/data/dataset67.txt"); - GcManager jvmManager = new GcManager(); - File preprocessedFile = jvmManager.preprocess(testFile, null); - jvmManager.store(preprocessedFile, false); - JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); - Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); - Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.PAR_NEW.toString() + ".", - jvmRun.getEventTypes().contains(JdkUtil.LogEventType.PAR_NEW)); - } - - /** - * Test identifying ParNewPEvent running in incremental mode. + * Test identifying ParNewEvent running in incremental mode. */ public void testCmsIncrementalModeAnalysis() { // TODO: Create File in platform independent way. diff --git a/src/test/java/org/eclipselabs/garbagecat/domain/jdk/TestCmsSerialOldConcurrentModeFailureEvent.java b/src/test/java/org/eclipselabs/garbagecat/domain/jdk/TestCmsSerialOldConcurrentModeFailureEvent.java deleted file mode 100644 index fb3552af..00000000 --- a/src/test/java/org/eclipselabs/garbagecat/domain/jdk/TestCmsSerialOldConcurrentModeFailureEvent.java +++ /dev/null @@ -1,103 +0,0 @@ -/********************************************************************************************************************** - * garbagecat * - * * - * Copyright (c) 2008-2016 Red Hat, Inc. * - * * - * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse * - * Public License v1.0 which accompanies this distribution, and is available at * - * http://www.eclipse.org/legal/epl-v10.html. * - * * - * Contributors: * - * Red Hat, Inc. - initial API and implementation * - *********************************************************************************************************************/ -package org.eclipselabs.garbagecat.domain.jdk; - -import org.eclipselabs.garbagecat.util.jdk.JdkUtil; - -import junit.framework.Assert; -import junit.framework.TestCase; - -/** - * @author Mike Millson - * - */ -public class TestCmsSerialOldConcurrentModeFailureEvent extends TestCase { - - public void testLogLineNoCMS() { - String logLine = "28282.075: [Full GC 28282.075 (concurrent mode failure): " - + "1179601K->1179648K(1179648K), 10.7510650 secs] 1441361K->1180553K(1441600K), " - + "[CMS Perm : 71172K->71171K(262144K)], 10.7515460 secs]"; - Assert.assertTrue("Log line not recognized as " - + JdkUtil.LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE.toString() + ".", - CmsSerialOldConcurrentModeFailureEvent.match(logLine)); - CmsSerialOldConcurrentModeFailureEvent event = new CmsSerialOldConcurrentModeFailureEvent(logLine); - Assert.assertEquals("Time stamp not parsed correctly.", 28282075, event.getTimestamp()); - Assert.assertEquals("Young begin size not parsed correctly.", (1441361 - 1179601), - event.getYoungOccupancyInit()); - Assert.assertEquals("Young end size not parsed correctly.", (1180553 - 1179648), event.getYoungOccupancyEnd()); - Assert.assertEquals("Young available size not parsed correctly.", (1441600 - 1179648), event.getYoungSpace()); - Assert.assertEquals("Old begin size not parsed correctly.", 1179601, event.getOldOccupancyInit()); - Assert.assertEquals("Old end size not parsed correctly.", 1179648, event.getOldOccupancyEnd()); - Assert.assertEquals("Old allocation size not parsed correctly.", 1179648, event.getOldSpace()); - Assert.assertEquals("Perm gen begin size not parsed correctly.", 71172, event.getPermOccupancyInit()); - Assert.assertEquals("Perm gen end size not parsed correctly.", 71171, event.getPermOccupancyEnd()); - Assert.assertEquals("Perm gen allocation size not parsed correctly.", 262144, event.getPermSpace()); - Assert.assertEquals("Duration not parsed correctly.", 10751, event.getDuration()); - } - - public void testLogLineWithCMS() { - String logLine = "6942.991: [Full GC 6942.991: [CMS (concurrent mode failure): " - + "907264K->907262K(907264K), 11.8579830 secs] 1506304K->1202006K(1506304K), " - + "[CMS Perm : 92801K->92800K(157352K)], 11.8585290 secs] " - + "[Times: user=11.80 sys=0.06, real=11.85 secs]"; - Assert.assertTrue("Log line not recognized as " - + JdkUtil.LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE.toString() + ".", - CmsSerialOldConcurrentModeFailureEvent.match(logLine)); - CmsSerialOldConcurrentModeFailureEvent event = new CmsSerialOldConcurrentModeFailureEvent(logLine); - Assert.assertEquals("Time stamp not parsed correctly.", 6942991, event.getTimestamp()); - Assert.assertEquals("Young begin size not parsed correctly.", (1506304 - 907264), - event.getYoungOccupancyInit()); - Assert.assertEquals("Young end size not parsed correctly.", (1202006 - 907262), event.getYoungOccupancyEnd()); - Assert.assertEquals("Young available size not parsed correctly.", (1506304 - 907264), event.getYoungSpace()); - Assert.assertEquals("Old begin size not parsed correctly.", 907264, event.getOldOccupancyInit()); - Assert.assertEquals("Old end size not parsed correctly.", 907262, event.getOldOccupancyEnd()); - Assert.assertEquals("Old allocation size not parsed correctly.", 907264, event.getOldSpace()); - Assert.assertEquals("Perm gen begin size not parsed correctly.", 92801, event.getPermOccupancyInit()); - Assert.assertEquals("Perm gen end size not parsed correctly.", 92800, event.getPermOccupancyEnd()); - Assert.assertEquals("Perm gen allocation size not parsed correctly.", 157352, event.getPermSpace()); - Assert.assertEquals("Duration not parsed correctly.", 11858, event.getDuration()); - } - - public void testLogLineWithTimesData() { - String logLine = "28282.075: [Full GC 28282.075 (concurrent mode failure): " - + "1179601K->1179648K(1179648K), 10.7510650 secs] 1441361K->1180553K(1441600K), " - + "[CMS Perm : 71172K->71171K(262144K)], 10.7515460 secs]" - + " [Times: user=0.29 sys=0.02, real=3.97 secs]"; - Assert.assertTrue("Log line not recognized as " - + JdkUtil.LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE.toString() + ".", - CmsSerialOldConcurrentModeFailureEvent.match(logLine)); - CmsSerialOldConcurrentModeFailureEvent event = new CmsSerialOldConcurrentModeFailureEvent(logLine); - Assert.assertEquals("Time stamp not parsed correctly.", 28282075, event.getTimestamp()); - Assert.assertEquals("Young begin size not parsed correctly.", (1441361 - 1179601), - event.getYoungOccupancyInit()); - Assert.assertEquals("Young end size not parsed correctly.", (1180553 - 1179648), event.getYoungOccupancyEnd()); - Assert.assertEquals("Young available size not parsed correctly.", (1441600 - 1179648), event.getYoungSpace()); - Assert.assertEquals("Old begin size not parsed correctly.", 1179601, event.getOldOccupancyInit()); - Assert.assertEquals("Old end size not parsed correctly.", 1179648, event.getOldOccupancyEnd()); - Assert.assertEquals("Old allocation size not parsed correctly.", 1179648, event.getOldSpace()); - Assert.assertEquals("Perm gen begin size not parsed correctly.", 71172, event.getPermOccupancyInit()); - Assert.assertEquals("Perm gen end size not parsed correctly.", 71171, event.getPermOccupancyEnd()); - Assert.assertEquals("Perm gen allocation size not parsed correctly.", 262144, event.getPermSpace()); - Assert.assertEquals("Duration not parsed correctly.", 10751, event.getDuration()); - } - - public void testLogLineWhitespaceAtEnd() { - String logLine = "6942.991: [Full GC 6942.991: [CMS (concurrent mode failure): " - + "907264K->907262K(907264K), 11.8579830 secs] 1506304K->1202006K(1506304K), " - + "[CMS Perm : 92801K->92800K(157352K)], 11.8585290 secs] " - + "[Times: user=11.80 sys=0.06, real=11.85 secs] "; - Assert.assertTrue("Log line not recognized as " - + JdkUtil.LogEventType.CMS_SERIAL_OLD_CONCURRENT_MODE_FAILURE.toString() + ".", - CmsSerialOldConcurrentModeFailureEvent.match(logLine)); - } -} diff --git a/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestCmsPreprocessAction.java b/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestCmsPreprocessAction.java index cbca6b78..182fe684 100644 --- a/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestCmsPreprocessAction.java +++ b/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestCmsPreprocessAction.java @@ -12,7 +12,15 @@ *********************************************************************************************************************/ package org.eclipselabs.garbagecat.preprocess.jdk; +import java.io.File; + +import org.eclipselabs.garbagecat.domain.JvmRun; +import org.eclipselabs.garbagecat.service.GcManager; +import org.eclipselabs.garbagecat.util.Constants; +import org.eclipselabs.garbagecat.util.jdk.Analysis; import org.eclipselabs.garbagecat.util.jdk.JdkUtil; +import org.eclipselabs.garbagecat.util.jdk.JdkUtil.LogEventType; +import org.eclipselabs.garbagecat.util.jdk.Jvm; import junit.framework.Assert; import junit.framework.TestCase; @@ -200,4 +208,107 @@ public void testLogLineMiddle() { Assert.assertTrue("Log line not recognized as " + JdkUtil.PreprocessActionType.CMS.toString() + ".", CmsPreprocessAction.match(logLine, null, null)); } + + /** + * Test PAR_NEW mixed with CMS_CONCURRENT over 2 lines. + * + */ + public void testParNewMixedCmsConcurrent() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset58.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", + jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); + Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); + Assert.assertTrue(JdkUtil.LogEventType.PAR_NEW.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.PAR_NEW)); + Assert.assertTrue(JdkUtil.LogEventType.CMS_CONCURRENT.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.CMS_CONCURRENT)); + } + + /** + * Test CMS_SERIAL_OLD with concurrent mode failure trigger mixed with CMS_CONCURRENT over 2 lines. + * + */ + public void testCmsSerialConcurrentModeFailureMixedCmsConcurrent() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset61.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", + jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); + Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); + Assert.assertTrue(JdkUtil.LogEventType.CMS_SERIAL_OLD.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.CMS_SERIAL_OLD)); + Assert.assertTrue(JdkUtil.LogEventType.CMS_CONCURRENT.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.CMS_CONCURRENT)); + Assert.assertTrue(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE + " analysis not identified.", + jvmRun.getAnalysisKeys().contains(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE)); + } + + /** + * Test split ParNewEvent with a trigger and -XX:+PrintTenuringDistribution logging between the initial + * and final lines. + */ + public void testSplitMixedTenuringParNewPromotionEventWithTriggerLogging() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset67.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); + Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.PAR_NEW.toString() + ".", + jvmRun.getEventTypes().contains(JdkUtil.LogEventType.PAR_NEW)); + } + + /** + * Test CMS_SERIAL_OLD with concurrent mode failure trigger mixed with CMS_CONCURRENT over 2 lines on JDK8. + * + */ + public void testCmsSerialConcurrentModeFailureMixedCmsConcurrentJdk8() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset69.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); + Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", + jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); + Assert.assertTrue(JdkUtil.LogEventType.CMS_SERIAL_OLD.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.CMS_SERIAL_OLD)); + Assert.assertTrue(JdkUtil.LogEventType.CMS_CONCURRENT.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.CMS_CONCURRENT)); + Assert.assertTrue(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE + " analysis not identified.", + jvmRun.getAnalysisKeys().contains(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE)); + } + + /** + * Test PAR_NEW_CONCURRENT_MODE_FAILURE_PERM_DATA with concurrent mode failure trigger mixed with CMS_CONCURRENT + * over 2 lines on JDK8. + * + */ + public void testParNewConcurrentModeFailureMixedCmsConcurrentJdk8() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset70.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); + Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", + jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); + Assert.assertTrue( + JdkUtil.LogEventType.PAR_NEW_CONCURRENT_MODE_FAILURE_PERM_DATA.toString() + + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.PAR_NEW_CONCURRENT_MODE_FAILURE_PERM_DATA)); + Assert.assertTrue(JdkUtil.LogEventType.CMS_CONCURRENT.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.CMS_CONCURRENT)); + } } diff --git a/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestG1PreprocessAction.java b/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestG1PreprocessAction.java index f37f8e89..9baacb3c 100644 --- a/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestG1PreprocessAction.java +++ b/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestG1PreprocessAction.java @@ -12,7 +12,14 @@ *********************************************************************************************************************/ package org.eclipselabs.garbagecat.preprocess.jdk; +import java.io.File; + +import org.eclipselabs.garbagecat.domain.JvmRun; +import org.eclipselabs.garbagecat.service.GcManager; +import org.eclipselabs.garbagecat.util.Constants; import org.eclipselabs.garbagecat.util.jdk.JdkUtil; +import org.eclipselabs.garbagecat.util.jdk.JdkUtil.LogEventType; +import org.eclipselabs.garbagecat.util.jdk.Jvm; import junit.framework.Assert; import junit.framework.TestCase; @@ -635,4 +642,72 @@ public void testLogLineSpaceDetails() { Assert.assertTrue("Log line not recognized as " + JdkUtil.PreprocessActionType.G1.toString() + ".", G1PreprocessAction.match(logLine, null, null)); } + + /** + * Test to ensure it does not falsely erroneously preprocess. + * + */ + public void testG1CleanupG1InitialMark() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset62.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertFalse(JdkUtil.LogEventType.UNKNOWN.toString() + " collector identified.", + jvmRun.getEventTypes().contains(LogEventType.UNKNOWN)); + Assert.assertEquals("Event type count not correct.", 2, jvmRun.getEventTypes().size()); + Assert.assertTrue(JdkUtil.LogEventType.G1_CLEANUP.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.G1_CLEANUP)); + Assert.assertTrue(JdkUtil.LogEventType.G1_YOUNG_INITIAL_MARK.toString() + " collector not identified.", + jvmRun.getEventTypes().contains(LogEventType.G1_YOUNG_INITIAL_MARK)); + } + + /** + * Test for G1_REMARK with JDK8 details. + * + */ + public void testRemarkWithFinalizeMarkingAndUnloading() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset63.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); + Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.G1_REMARK.toString() + ".", + jvmRun.getEventTypes().contains(JdkUtil.LogEventType.G1_REMARK)); + } + + /** + * Test for G1_CONCURRENT string deduplication. + * + */ + public void testConcurrentStringDeduplicatonLogging() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset64.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); + Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.G1_CONCURRENT.toString() + ".", + jvmRun.getEventTypes().contains(JdkUtil.LogEventType.G1_CONCURRENT)); + } + + /** + * Test for G1_FULL across 3 lines with details. + * + */ + public void testG1Full3Lines() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset65.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); + Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.G1_FULL_GC.toString() + ".", + jvmRun.getEventTypes().contains(JdkUtil.LogEventType.G1_FULL_GC)); + } } diff --git a/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestPrintHeapAtGcPreprocessAction.java b/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestPrintHeapAtGcPreprocessAction.java index 33873af5..c6ec94a2 100644 --- a/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestPrintHeapAtGcPreprocessAction.java +++ b/src/test/java/org/eclipselabs/garbagecat/preprocess/jdk/TestPrintHeapAtGcPreprocessAction.java @@ -12,7 +12,14 @@ *********************************************************************************************************************/ package org.eclipselabs.garbagecat.preprocess.jdk; +import java.io.File; + +import org.eclipselabs.garbagecat.domain.JvmRun; +import org.eclipselabs.garbagecat.service.GcManager; +import org.eclipselabs.garbagecat.util.Constants; +import org.eclipselabs.garbagecat.util.jdk.Analysis; import org.eclipselabs.garbagecat.util.jdk.JdkUtil; +import org.eclipselabs.garbagecat.util.jdk.Jvm; import junit.framework.Assert; import junit.framework.TestCase; @@ -332,4 +339,21 @@ public void testJDK8ClassSpaceLine() { "Log line not recognized as " + JdkUtil.PreprocessActionType.PRINT_HEAP_AT_GC.toString() + ".", PrintHeapAtGcPreprocessAction.match(logLine, null)); } + + /** + * Test with underlying CmsSerialOld triggered by concurrent mode failure. + */ + public void testSplitCmsSerialOldConcurrentModeFailureEventLogging() { + // TODO: Create File in platform independent way. + File testFile = new File("src/test/data/dataset8.txt"); + GcManager jvmManager = new GcManager(); + File preprocessedFile = jvmManager.preprocess(testFile, null); + jvmManager.store(preprocessedFile, false); + JvmRun jvmRun = jvmManager.getJvmRun(new Jvm(null, null), Constants.DEFAULT_BOTTLENECK_THROUGHPUT_THRESHOLD); + Assert.assertEquals("Event type count not correct.", 1, jvmRun.getEventTypes().size()); + Assert.assertTrue("Log line not recognized as " + JdkUtil.LogEventType.CMS_SERIAL_OLD.toString() + ".", + jvmRun.getEventTypes().contains(JdkUtil.LogEventType.CMS_SERIAL_OLD)); + Assert.assertTrue(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE + " analysis not identified.", + jvmRun.getAnalysisKeys().contains(Analysis.KEY_CMS_CONCURRENT_MODE_FAILURE)); + } }