Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

1.31 has problems reading 1.6.0_24_64 output (maybe caused by -XX:-UseAdaptiveSizePolicy -XX:+PrintAdaptiveSizePolicy?) #36

Closed
ka-ba opened this issue Sep 27, 2012 · 10 comments
Assignees
Milestone

Comments

@ka-ba
Copy link

ka-ba commented Sep 27, 2012

Hey!
Trying to tune an app, logged GC with -XX:+PrintGCDetails -XX:-UseAdaptiveSizePolicy -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCDateStamps -Xloggc:[...].

GCViewer 1.31 does not show anything, but reports 3 errors and some warnings:

INFO [DataReaderFactory]: File format: Sun 1.6.x
INFO [DataReaderSun1_6_0]: Reading Sun / Oracle 1.4.x / 1.5.x / 1.6.x / 1.7.x format...
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 462: 2012-09-26T18:23:54.092+0200: 6591.672: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3994640 promoted: 49152 overflow: false [PSYoungGen: 783920K->3901K(786304K)] 1036641K->256670K(1042304K), 0.0078830 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: Error parsing entry (java.lang.NumberFormatException: For input string: "260017K->111440K(1042304K)") Line 529: 2012-09-26T18:34:25.956+0200: 7223.537: [GC2012-09-26T18:34:25.964+0200: 7223.545: [Full GC [PSYoungGen: 4064K->0K(786304K)] [ParOldGen: 255953K->111440K(256000K)] 260017K->111440K(1042304K) [PSPermGen: 142360K->138587K(262144K)], 1.2956780 secs] [Times: user=4.32 sys=0.02, real=1.30 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 1154: 2012-09-26T20:08:16.521+0200: 12854.102: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3866624 promoted: 49152 overflow: false [PSYoungGen: 784000K->3776K(786304K)] 925980K->145804K(1042304K), 0.0068860 secs] [Times: user=0.03 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 1614: 2012-09-26T21:17:48.435+0200: 17026.016: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3932160 promoted: 49152 overflow: false [PSYoungGen: 783872K->3840K(786304K)] 948627K->168643K(1042304K), 0.0060840 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 2074: 2012-09-26T22:29:15.085+0200: 21312.665: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3801088 promoted: 49152 overflow: false [PSYoungGen: 783808K->3712K(786304K)] 971314K->191266K(1042304K), 0.0073270 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 2534: 2012-09-26T23:41:40.907+0200: 25658.488: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3899392 promoted: 49152 overflow: false [PSYoungGen: 783840K->3808K(786304K)] 993664K->213680K(1042304K), 0.0062760 secs] [Times: user=0.03 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 2993: 2012-09-27T00:55:27.250+0200: 30084.831: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3932160 promoted: 40960 overflow: false [PSYoungGen: 783808K->3840K(786304K)] 1015958K->236030K(1042304K), 0.0067370 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 3222: 2012-09-27T01:32:25.304+0200: 32302.885: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3964928 promoted: 40960 overflow: false [PSYoungGen: 783864K->3872K(786304K)] 1026982K->247030K(1042304K), 0.0069120 secs] [Times: user=0.04 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 3451: 2012-09-27T02:09:51.757+0200: 34549.337: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3932160 promoted: 49152 overflow: false [PSYoungGen: 783872K->3840K(786304K)] 1038197K->258213K(1042304K), 0.0071970 secs] [Times: user=0.04 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: Error parsing entry (java.lang.NumberFormatException: For input string: "259765K->114749K(1042304K)") Line 3485: 2012-09-27T02:15:26.242+0200: 34883.822: [GC2012-09-27T02:15:26.249+0200: 34883.829: [Full GC [PSYoungGen: 3808K->0K(786304K)] [ParOldGen: 255957K->114749K(256000K)] 259765K->114749K(1042304K) [PSPermGen: 143531K->139011K(262144K)], 0.5934780 secs] [Times: user=1.82 sys=0.01, real=0.59 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 3681: 2012-09-27T02:44:37.901+0200: 36635.481: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 4014096 promoted: 40960 overflow: false [PSYoungGen: 783872K->3920K(786304K)] 907269K->127357K(1042304K), 0.0056990 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 4141: 2012-09-27T03:53:37.575+0200: 40775.156: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3929104 promoted: 49152 overflow: false [PSYoungGen: 783904K->3837K(786304K)] 928926K->148907K(1042304K), 0.0057890 secs] [Times: user=0.03 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 4601: 2012-09-27T05:03:04.944+0200: 44942.525: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3964928 promoted: 49152 overflow: false [PSYoungGen: 783872K->3872K(786304K)] 949992K->170040K(1042304K), 0.0061710 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 5061: 2012-09-27T06:13:24.398+0200: 49161.978: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3899392 promoted: 40960 overflow: false [PSYoungGen: 783837K->3808K(786304K)] 971070K->191081K(1042304K), 0.0065200 secs] [Times: user=0.04 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 5521: 2012-09-27T07:23:58.066+0200: 53395.646: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 3997696 promoted: 40960 overflow: false [PSYoungGen: 783872K->3904K(786304K)] 991872K->211944K(1042304K), 0.0070690 secs] [Times: user=0.04 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 5980: 2012-09-27T08:35:10.220+0200: 57667.801: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 4227088 promoted: 49152 overflow: false [PSYoungGen: 784192K->4128K(786304K)] 1012880K->232864K(1042304K), 0.0068950 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: Error parsing entry (java.lang.NumberFormatException: For input string: "1014212K->1040157K(1042304K).") Line 6003: 2012-09-27T08:38:47.257+0200: 57884.837: [GC2012-09-27T08:38:56.052+0200: 57893.633: [GC-- [PSYoungGen: 784160K->784160K(786304K)] 1014212K->1040157K(1042304K), 0.3464400 secs] [Times: user=0.41 sys=0.41, real=0.34 secs]
WARNING [DataReaderSun1_6_0]: com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting stream (java.io.IOException: Mark invalid) Line 6015: 2012-09-27T10:06:38.415+0200: 63155.996: [GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh: survived: 6389792 promoted: 7036960 overflow: true [PSYoungGen: 786272K->6240K(786304K)] 983913K->210753K(1042304K), 0.0312370 secs]

INFO [DataReaderSun1_6_0]: Done reading.

Best regards, Kai

@chewiebug
Copy link
Owner

Hi Kai

I have been able to reproduce the problem you reported.
-XX:+PrintAdaptiveSizePolicy is supported, but only if you combine it
with -XX:**+**UseAdaptiveSizePolicy (without asterisks).

Could you please explain me, why you try to print information about a
feature you disable? If there is a good reason I may try to support this
combination.

Best regards, Jörg

Am 27.09.2012 10:34, schrieb ka-ba:

Hey!
Trying to tune an app, logged GC with -XX:+PrintGCDetails
-XX:-UseAdaptiveSizePolicy -XX:+PrintAdaptiveSizePolicy
-XX:+PrintGCDateStamps -Xloggc:[...].

GCViewer 1.31 does not show anything, but reports 3 errors and
some warnings:

INFO [DataReaderFactory]: File format: Sun 1.6.x
INFO [DataReaderSun1_6_0]: Reading Sun / Oracle 1.4.x / 1.5.x / 1.6.x
/ 1.7.x format...
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 462:
2012-09-26T18:23:54.092+0200: 6591.672:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3994640 promoted: 49152 overflow: false [PSYoungGen:
783920K->3901K(786304K)] 1036641K->256670K(1042304K), 0.0078830 secs]
[Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: Error parsing entry
(java.lang.NumberFormatException: For input string:
"260017K->111440K(1042304K)") Line 529: 2012-09-26T18:34:25.956+0200:
7223.537: [GC2012-09-26T18:34:25.964+0200: 7223.545: [Full GC
[PSYoungGen: 4064K->0K(786304K)] [ParOldGen:
255953K->111440K(256000K)] 260017K->111440K(1042304K) [PSPermGen:
142360K->138587K(262144K)], 1.2956780 secs] [Times: user=4.32
sys=0.02, real=1.30 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 1154:
2012-09-26T20:08:16.521+0200: 12854.102:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3866624 promoted: 49152 overflow: false [PSYoungGen:
784000K->3776K(786304K)] 925980K->145804K(1042304K), 0.0068860 secs]
[Times: user=0.03 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 1614:
2012-09-26T21:17:48.435+0200: 17026.016:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3932160 promoted: 49152 overflow: false [PSYoungGen:
783872K->3840K(786304K)] 948627K->168643K(1042304K), 0.0060840 secs]
[Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 2074:
2012-09-26T22:29:15.085+0200: 21312.665:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3801088 promoted: 49152 overflow: false [PSYoungGen:
783808K->3712K(786304K)] 971314K->191266K(1042304K), 0.0073270 secs]
[Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 2534:
2012-09-26T23:41:40.907+0200: 25658.488:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3899392 promoted: 49152 overflow: false [PSYoungGen:
783840K->3808K(786304K)] 993664K->213680K(1042304K), 0.0062760 secs]
[Times: user=0.03 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 2993:
2012-09-27T00:55:27.250+0200: 30084.831:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3932160 promoted: 40960 overflow: false [PSYoungGen:
783808K->3840K(786304K)] 1015958K->236030K(1042304K), 0.0067370 secs]
[Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 3222:
2012-09-27T01:32:25.304+0200: 32302.885:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3964928 promoted: 40960 overflow: false [PSYoungGen:
783864K->3872K(786304K)] 1026982K->247030K(1042304K), 0.0069120 secs]
[Times: user=0.04 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 3451:
2012-09-27T02:09:51.757+0200: 34549.337:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3932160 promoted: 49152 overflow: false [PSYoungGen:
783872K->3840K(786304K)] 1038197K->258213K(1042304K), 0.0071970 secs]
[Times: user=0.04 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: Error parsing entry
(java.lang.NumberFormatException: For input string:
"259765K->114749K(1042304K)") Line 3485: 2012-09-27T02:15:26.242+0200:
34883.822: [GC2012-09-27T02:15:26.249+0200: 34883.829: [Full GC
[PSYoungGen: 3808K->0K(786304K)] [ParOldGen:
255957K->114749K(256000K)] 259765K->114749K(1042304K) [PSPermGen:
143531K->139011K(262144K)], 0.5934780 secs] [Times: user=1.82
sys=0.01, real=0.59 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 3681:
2012-09-27T02:44:37.901+0200: 36635.481:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 4014096 promoted: 40960 overflow: false [PSYoungGen:
783872K->3920K(786304K)] 907269K->127357K(1042304K), 0.0056990 secs]
[Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 4141:
2012-09-27T03:53:37.575+0200: 40775.156:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3929104 promoted: 49152 overflow: false [PSYoungGen:
783904K->3837K(786304K)] 928926K->148907K(1042304K), 0.0057890 secs]
[Times: user=0.03 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 4601:
2012-09-27T05:03:04.944+0200: 44942.525:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3964928 promoted: 49152 overflow: false [PSYoungGen:
783872K->3872K(786304K)] 949992K->170040K(1042304K), 0.0061710 secs]
[Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 5061:
2012-09-27T06:13:24.398+0200: 49161.978:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3899392 promoted: 40960 overflow: false [PSYoungGen:
783837K->3808K(786304K)] 971070K->191081K(1042304K), 0.0065200 secs]
[Times: user=0.04 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 5521:
2012-09-27T07:23:58.066+0200: 53395.646:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 3997696 promoted: 40960 overflow: false [PSYoungGen:
783872K->3904K(786304K)] 991872K->211944K(1042304K), 0.0070690 secs]
[Times: user=0.04 sys=0.00, real=0.00 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 5980:
2012-09-27T08:35:10.220+0200: 57667.801:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 4227088 promoted: 49152 overflow: false [PSYoungGen:
784192K->4128K(786304K)] 1012880K->232864K(1042304K), 0.0068950 secs]
[Times: user=0.04 sys=0.00, real=0.01 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: Error parsing entry
(java.lang.NumberFormatException: For input string:
"1014212K->1040157K(1042304K).") Line 6003:
2012-09-27T08:38:47.257+0200: 57884.837:
[GC2012-09-27T08:38:56.052+0200: 57893.633: [GC-- [PSYoungGen:
784160K->784160K(786304K)] 1014212K->1040157K(1042304K), 0.3464400
secs] [Times: user=0.41 sys=0.41, real=0.34 secs]
WARNING [DataReaderSun1_6_0]:
com.tagtraum.perf.gcviewer.imp.ParseException: problem resetting
stream (java.io.IOException: Mark invalid) Line 6015:
2012-09-27T10:06:38.415+0200: 63155.996:
[GCAdaptiveSizePolicy::compute_survivor_space_size_and_thresh:
survived: 6389792 promoted: 7036960 overflow: true [PSYoungGen:
786272K->6240K(786304K)] 983913K->210753K(1042304K), 0.0312370 secs]

INFO [DataReaderSun1_6_0]: Done reading.

Best regards, Kai


Reply to this email directly or view it on GitHub
#36.

@ecki
Copy link
Contributor

ecki commented Sep 27, 2012

Content preview: Am 27.09.2012, 17:18 Uhr, schrieb chewiebug notifications@github.com:
> Could you please explain me, why you try to print information about a >
feature you disable? If there is a good reason I may try to support this

combination. [...]

Content analysis details: (-1.0 points, 5.0 required)

pts rule name description


-1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP
X-SA-Exim-Connect-IP: 46.223.134.199
X-SA-Exim-Mail-From: bernd-2012@eckenfels.net
X-SA-Exim-Scanned: No (on neskaya.eckenfels.net); SAEximRunCond expanded to false

Am 27.09.2012, 17:18 Uhr, schrieb chewiebug notifications@github.com:

Could you please explain me, why you try to print information about a
feature you disable? If there is a good reason I may try to support this
combination.

I was actually suprised it prints survivor volume and promotions, this
might actually be real good information. You otherwise have to calculate
it based on before/after numbers which I am not sure if they always
correct.

survived: 3994640 promoted: 49152 overflow: false

Greetings
Bernd

@ka-ba
Copy link
Author

ka-ba commented Sep 27, 2012

Hi Jörg,

I'm new to Java tuning, so I'm trying to follow ideas from a book ("Java Performance", Addison-Wesley).
The idea behind this combination of options - as far as I'm able to recap it here - is that you (a) need the information -XX:+PrintAdaptiveSizePolicy produces to effectively tune the size of the Survivor Spaces (namely "survived", "promoted" and "overflow"). But (b) on the other hand you do not want the Performance GC to constantly adapt the Survivor Space size, because you want to see how good the size works that you started with.

Thanks for considering, Kai

NB: It would be nice to have these three values depicted in the graph as well. :^)

@ghost ghost assigned chewiebug Oct 18, 2012
@chewiebug
Copy link
Owner

Hi Kai,

Sorry for taking a bit long to answer here. This sounds like a good approach for information gathering before tuning. I'll look into the parser to make it capable of handling -XX:+PrintAdaptiveSizePolicy.

I'll probably not add these values to the graph with their own line. However, you can get a hint in the graph concerning the values:

You can see how much "survived" when you look at the distance between the gray "Used young heap" line and the lower end of the yellow "young generation" area after each young collection.

"promoted" is the amount the "Used tenured heap" line rises after each young collection. And in the memory tab on the right side you can find "avg promotion" and "total promotion" for the log you are looking at.

I have to admit "overflow" is nowhere visible.

Regards, Jörg

chewiebug added a commit that referenced this issue Oct 18, 2012
-XX:-PrintAdaptiveSizePolicy (issue #36)
@chewiebug
Copy link
Owner

It was easier than I thought. I have pushed a fix to the master branch. Could you please test with your log file?

@ka-ba
Copy link
Author

ka-ba commented Oct 30, 2012

Hi Jörg,
thanks for your fix and sorry for my late response (on holidays). I tried myself to incorporate this into the parser but didn't succeed. I constructed a prototype of a completely new browser (using regex) but didn't manage to check it in at github yet; I will send you a note and ask you to review the idea, as soon as uploaded (may still take a while...).
I will as well test your fix, but again, this might take some days; sorry.
Best regards and thanks, Kai

@chewiebug
Copy link
Owner

Hi Kai,

No problem concerning late responses - you may have noticed that I am not very fast sometimes, either ;-).

I'll gladly review your idea using regex. If your approach proves to be better than mine (faster, easier to maintain...) then I am happy to integrate it. I sometimes have used regex as well, my main problem was performance and sometimes complexity of the expression. I am looking forward to seeing your approach.

Regards, Jörg

@ka-ba
Copy link
Author

ka-ba commented Nov 1, 2012

Jörg,
I forked from your repository and uploaded my prototype, maybe you can check out from there and check it out? :^)
I didn't do extensive tests, but it reads some information from GC logs an they are displayed. Performance comparisons I didn't do either.
Best regards, Kai
(P.S: Still have to test your fix....)

@ka-ba
Copy link
Author

ka-ba commented Nov 3, 2012

Hi Jörg!

Tested with some generated files. I can confirm that your fix works, the files are readable without errors.

Best regards & thanks, Kai

@chewiebug
Copy link
Owner

Hi Kai,

Thank you for confirming the fix. I'll close the issue now.

Regarding your parser prototype: I have looked into your code and found
nice and clean what I saw there. At the first glance it looks better
than the current implementation where I see the main drawback in its
complexity.

Just to see what it can do at this stage I threw all my unittests at
your implementation. I found 3 passed out of 50 - ok for a first
prototype. A first check regarding performance gave me average timings
between 0.4s and 4.3s (current: 0.3s and 1.2s; I took 5 different log
files for these checks).

Since I know Gchisto http://java.net/projects/gchisto contains a regex
parser supporting many of the features GCViewer does, I took that code
for performance comparison as well and found average timings for the
same logfiles between 0.2s and 30s. So best case seems to be faster than
GCViewer, worst case I'd consider a no go for GCViewer.

My conclusions after the above tests:

  • a regex parser can have a good performance - worst case scenarios
    may be a problem
  • you are working an something that already exists in two different
    implementations
  • seeing the size of the Gchisto parser, I think you have quite a lot
    of work to do to achieve full feature coverage with your parser

If your main goal is to have fun implementing a parser for java 1.6, go
ahead. If it covers all current features, is better to maintain than the
current implementation while being reasonably fast, it is a candidate
for inclusion in the codebase. It may happen that I decline the
inclusion, then you certainly may continue your own fork of the project.

However, if your main goal is to contribute a parser to GCViewer, I
think, I'd rather have you implement a parser for a different type of
log file. I have had an email from someone at azulsystems asking if I
were interested to add a parser for the Zing JVM. I didn't have time for
it so this is still open. If this sounds interesting for you, I'll set
up the contact between you and the guy at azulsystems.

Let me know what you think!

Regards, Jörg

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

3 participants