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(ListLogEventType
.
* @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.
*
* Other JVM operations that require a safepoint: + *
** 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; - -/** - ** @@ -151,7 +151,7 @@ * * *- * 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: - *
- *
- * - * - *- The heap is too small.
- *- 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.- 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.- 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
. - *- If the old generation has available space, the cause is likely fragmentation. Fragmentation can be avoided by - * increasing the heap size.
- *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: + *
**
- * * *- The heap is too small.
*- There is a change in application behavior (e.g. a load increase) that causes the young promotion rate to exceed @@ -66,7 +67,6 @@ *
- If the old generation has available space, the cause is likely fragmentation. Fragmentation can be avoided by * increasing the heap size.
*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: + *
**
- * * *- The heap is too small.
*- There is a change in application behavior (e.g. a load increase) that causes the young promotion rate to exceed @@ -68,7 +69,6 @@ *
- If the old generation has available space, the cause is likely fragmentation. Fragmentation can be avoided by * increasing the heap size.
*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 @@ ** @@ -112,7 +112,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 @@ * ** @@ -74,7 +74,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] *
- * 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] *
- * 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] *
- * 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
- * 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));
+ }
}