Hi Paul,

    I think it is not necessary to have a loop for argument processing, since 
there is not so much arguments to handle.
   And I made a new webrev 
http://cr.openjdk.java.net/~xiaofeya/8215622/webrev.01/

Hi All,
    May I also ask your help for reviewing this webrev?
    webrev http://cr.openjdk.java.net/~xiaofeya/8215622/webrev.01/
    Bug: https://bugs.openjdk.java.net/browse/JDK-8215622

Thanks!
Lin

________________________________
发件人: serviceability-dev <serviceability-dev-boun...@openjdk.java.net> 代表 臧琳 
<zangl...@jd.com>
发送时间: 2019年1月3日 10:21
收件人: Hohensee, Paul; serviceability-dev@openjdk.java.net
主题: [发件地址伪造,恶意邮件,勿点] RE: [RFR]8215622: Add dump to file support for jmap histo


Dear Paul,

       Thanks a lot for your review! I am trying to remend the patch

       One problem is that in future, I will add more options for histo, such 
as “parallel”, “incremental”.

so do you thinking option processing with loop in heap_inspection() in 
attachListener.cpp would

be more reasonable than the “if else” ?

Thanks



BRs,

Lin







From: Hohensee, Paul <hohen...@amazon.com>
Sent: Saturday, December 29, 2018 3:54 AM
To: 臧琳 <zangl...@jd.com>; serviceability-dev@openjdk.java.net
Subject: Re: [RFR]8215622: Add dump to file support for jmap histo



Update the copyright dates to 2019 please, since this won’t get pushed until 
then.



In JMap.java, I’d emulate dump() and use



        String filename = null;

        String subopts[] = options.split(",");



        for (String subopt : subopts){

            if (subopt.isEmpty() || subopt.equals("all")) {

                // pass

            } else if (subopt.equals("live")) {

                liveopt = "-live";

            } else if (subopt.startsWith("file=")) {

                // file=<file> - check that <file> is specified

                if (subopt.length() > 5) {

                    filename = subopt.substring(5);

                }

            } else {

              usage(1);

            }

         }



         // get the canonical path - important to avoid just passing

         // a "heap.bin" and having the dump created in the target VM

         // working directory rather than the directory where jmap

         // is executed.

         filename = new File(filename).getCanonicalPath();

         // inspectHeap is not the same as jcmd GC.class_histogram

         executeCommandForPid(pid, "inspectheap", filename, liveopt);



I.e., use an enhanced for loop to scan the array, and duplicate dump()’s 
executeCommandForPid() argument order, as well as dump()’s “file=<>” check (the 
code that starts with “if (subopt.startsWith”) and canonicalization. Actually, 
better to factor the latter out into its own method and use it from both 
histo() and dump().



The argument checking code in heap_inspection() in attachListener.cpp can be 
simplified along the lines of dump_heap(). I.e., you don’t need to loop over 
the argument list. To match up with dump_heap()’s info messages, the info 
message string at the end should be “Heap inspection file created: %s”.



Thanks,



Paul



From: serviceability-dev 
<serviceability-dev-boun...@openjdk.java.net<mailto:serviceability-dev-boun...@openjdk.java.net>>
 on behalf of 臧琳 <zangl...@jd.com<mailto:zangl...@jd.com>>
Date: Thursday, December 20, 2018 at 11:03 PM
To: 
"serviceability-dev@openjdk.java.net<mailto:serviceability-dev@openjdk.java.net>"
 
<serviceability-dev@openjdk.java.net<mailto:serviceability-dev@openjdk.java.net>>
Subject: [RFR]8215622: Add dump to file support for jmap histo



Hi All,

       May I ask your help to review this patch for enhance jmap �Chisto.

It add the “file=<path>” arguments that allow jmap �Chisto outputs data to file 
directly.

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/8215622/webrev.00/

Bug: https://bugs.openjdk.java.net/browse/JDK-8215622



Thanks.



BRs,

Lin






Reply via email to