[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: [RFR]8215623: Add incremental dump for jmap histo
From:       "Hohensee, Paul" <hohensee () amazon ! com>
Date:       2018-12-31 20:56:49
Message-ID: 32BE694F-58A4-4BC0-88A9-9295FE9411F6 () amazon ! com
[Download RAW message or body]

[Attachment #2 (text/plain)]

As for 8215622, update the copyright dates to 2019 please, since this won't get \
pushed until then.

You might generalize the implementation so that all inspections are done \
incrementally, and parameterize RecordInstanceClosure with the incremental threshold. \
"incremental" could become "chunkcount=<n>", where <n> defaults to infinity (max \
value of size_t).

I'd not use a default file name when "chunkcount" is specified, I'd just write to \
whatever the output stream is. "chunkcount" is then independent of "file".

I'd add another histo argument for the maximum file size, call it "maxfilesize", and \
parameterize RecordInstanceClosure with it. Default would be infinity (max value of \
size_t).

If you want to make it easy to use your 8k and 5mb chunkcount and maxfilesize \
combination, you could redefine your original "incremental" argument as syntactic \
sugar for "chunkcount=8k,maxfilesize=5m".

INCREMENTAL_THRESHOLD and MAX_INCREMENTAL_FILESIZE become DEFAULT_CHUNKSIZE and \
MAX_FILE_SIZE, are both set to max size_t, and should be defined as "const int" \
within RecordInstanceClosure.

Thanks,

Paul

From: serviceability-dev <serviceability-dev-bounces@openjdk.java.net> on behalf of \
                臧琳 <zanglin5@jd.com>
Date: Thursday, December 20, 2018 at 11:13 PM
To: "serviceability-dev@openjdk.java.net" <serviceability-dev@openjdk.java.net>
Subject: [RFR]8215623: Add incremental dump for jmap histo

Hi All,
       May I ask your help to review this patch for enhance jmap –histo.
It adds the "incremental" arguments that allow jmap –histo to incrementally save \
the intermediate data into a temp file. The intermediate data is dumped incrementally \
and write to a rolling file, which limit the size of the temp file to be small. This \
is useful for user to get intermediate results when jmap/jvm process is killed \
accidentally. Especially when the heap is large.

This patch is also part of the enhancement described in \
https://bugs.openjdk.java.net/browse/JDK-8214535.

Webrev: http://cr.openjdk.java.net/~xiaofeya/8215623/webrev.00/
Bug: https://bugs.openjdk.java.net/browse/JDK-8215623

Thanks.

BRs,
Lin


[Attachment #3 (text/html)]

<html xmlns:o="urn:schemas-microsoft-com:office:office" \
xmlns:w="urn:schemas-microsoft-com:office:word" \
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" \
xmlns="http://www.w3.org/TR/REC-html40"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:DengXian;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"\@DengXian";
	panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	font-size:10.5pt;
	font-family:DengXian;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle18
	{mso-style-type:personal;
	font-family:DengXian;
	color:windowtext;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
	{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:black">As \
for 8215622, update the copyright dates to 2019 please, since this won't get pushed \
until then.<o:p></o:p></span></p> <p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:black"><o:p>&nbsp;</o:p></span></p>
 <p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">You might \
generalize the implementation so that all inspections are done incrementally, and \
parameterize RecordInstanceClosure with the incremental threshold. "incremental"  \
could become "chunkcount=&lt;n&gt;", where &lt;n&gt; defaults to infinity (max value \
of size_t).<o:p></o:p></span></p> <p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
 <p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">I'd not use a \
default file name when "chunkcount" is specified, I'd just write to whatever the \
output stream is. "chunkcount" is then independent of "file".<o:p></o:p></span></p> \
<p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
 <p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">I'd add another \
histo argument for the maximum file size, call it "maxfilesize", and parameterize \
RecordInstanceClosure with it. Default would be infinity (max value of \
size_t).<o:p></o:p></span></p> <p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
 <p class="MsoNormal" align="left" style="text-align:left"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">If you want to \
make it easy to use your 8k and 5mb chunkcount and maxfilesize combination, you could \
redefine your original "incremental"  argument as syntactic sugar for \
"chunkcount=8k,maxfilesize=5m".<o:p></o:p></span></p> <p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
 <p class="MsoNormal" align="left" style="text-align:left"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">INCREMENTAL_THRESHOLD \
and MAX_INCREMENTAL_FILESIZE become DEFAULT_CHUNKSIZE and MAX_FILE_SIZE, are both set \
to max size_t, and should be  defined as "const int" within \
RecordInstanceClosure.<o:p></o:p></span></p> <p class="MsoNormal" align="left" \
style="text-align:left"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
 <p class="MsoNormal" align="left" style="text-align:left"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">Thanks,<o:p></o:p></span></p>
 <p class="MsoNormal" align="left" style="text-align:left"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
 <p class="MsoNormal" align="left" style="text-align:left"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">Paul<o:p></o:p></span></p>
 <p class="MsoNormal"><span \
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
 <div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: \
</span></b><span style="font-size:12.0pt;color:black">serviceability-dev \
&lt;serviceability-dev-bounces@openjdk.java.net&gt; on behalf of 臧琳 \
&lt;zanglin5@jd.com&gt;<br> <b>Date: </b>Thursday, December 20, 2018 at 11:13 PM<br>
<b>To: </b>&quot;serviceability-dev@openjdk.java.net&quot; \
&lt;serviceability-dev@openjdk.java.net&gt;<br> <b>Subject: </b>[RFR]8215623: Add \
incremental dump for jmap histo<o:p></o:p></span></p> </div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
</div>
<p class="MsoNormal">Hi All, <o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; May I ask your help to \
review this patch for enhance jmap –histo. <o:p></o:p></p>
<p class="MsoNormal" style="text-indent:21.0pt">It adds the "incremental" arguments \
that allow jmap –histo to incrementally save the intermediate data into a temp \
file.<o:p></o:p></p> <p class="MsoNormal" style="text-indent:21.0pt">The intermediate \
data is dumped incrementally and write to a rolling file, which limit the size of the \
temp file to be small.<o:p></o:p></p> <p class="MsoNormal" \
style="text-indent:21.0pt">This is useful for user to get intermediate results when \
jmap/jvm process is killed accidentally. Especially when the heap is \
large.<o:p></o:p></p> <p class="MsoNormal" \
style="text-indent:21.0pt">&nbsp;<o:p></o:p></p> <p class="MsoNormal" \
style="text-indent:21.0pt">This patch is also part of the enhancement described in <a \
href="https://bugs.openjdk.java.net/browse/JDK-8214535">https://bugs.openjdk.java.net/browse/JDK-8214535</a>.<o:p></o:p></p>
 <p class="MsoNormal" style="text-indent:21.0pt">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="text-indent:21.0pt">Webrev: <a \
href="http://cr.openjdk.java.net/~xiaofeya/8215623/webrev.00/"> \
http://cr.openjdk.java.net/~xiaofeya/8215623/webrev.00/</a><o:p></o:p></p> <p \
class="MsoNormal" style="text-indent:21.0pt">Bug: \
https://bugs.openjdk.java.net/browse/JDK-8215623<o:p></o:p></p> <p class="MsoNormal" \
style="text-indent:21.0pt">&nbsp;<o:p></o:p></p> <p class="MsoNormal" \
style="text-indent:21.0pt">Thanks.<o:p></o:p></p> <p class="MsoNormal" \
style="text-indent:21.0pt">&nbsp;<o:p></o:p></p> <p \
class="MsoNormal">BRs,<o:p></o:p></p> <p class="MsoNormal">Lin&nbsp;&nbsp; \
<o:p></o:p></p> <p class="MsoNormal">&nbsp;<o:p></o:p></p>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</body>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic