Review request for JDK-8027709: JDK8 docs on -XX:CompileOnly option are incorrect

Kumar Srinivasan kumar.x.srinivasan at oracle.com
Thu Dec 12 06:44:14 PST 2013


On 12/11/2013 8:55 AM, alexey zhebel wrote:
> Hi Vladimir!
>
> The option descriptions were reviewed numerous times by various 
> members of the hotspot team.
>
> I updated the webrev with the new Xcomp description. Other changes 
> remained the same. Do you approve?
>
> *Kumar*, do you approve the changes?

yes.

Kumar

> Best regards,
> Alexey Zhebel
> On 11.12.2013 5:07, Vladimir Kozlov wrote:
>> Who did review of other flags description? I see that description of 
>> -Xcomp is also incorrect - it does not disable Interpreter, methods 
>> still can be executed in it. Also JIT compiler does not execute methods.
>> I think it should be:
>>
>>      -Xcomp
>>           Force methods compilation on first invocation. By default,
>>           methods are compiled after number of interpreted method
>>           invocations. For example, for Client VM (-client)
>>           it is 1000 invocations and for Server VM (-server)
>>           it is 10000. Interpreted method invocations are used
>>           to gather information for efficient compilation.
>>           Use the -Xcomp flag to get compiled methods as soon
>>           as possible at the expense of efficiency.
>>
>>           You can also change the number of interpreted method
>>           invocations before compilation using the
>>           -XX:CompileThreshold option.
>>
>> I was only asking to display the text which you want to review. It 
>> looks fine.
>>
>> Thanks,
>> Vladimir
>>
>> Here is man page text:
>>
>>      -XX:CompileCommand=command,method[,option]
>>           Specifies a command to perform on a method. For
>>           example, to exclude the indexOf() method of the String
>>           class from being compiled, use the following:
>>
>>           -XX:CompileCommand=exclude,java/lang/String.indexOf
>>
>>           Note that the full class name is specified, including
>>           all packages and subpackages separated by a slash (/).
>>           For easier cut and paste operations, it is also
>>           possible to use the method name format produced by the
>>           -XX:+PrintCompilation and -XX:+LogCompilation options:
>>
>>           -XX:CompileCommand=exclude,java.lang.String::indexOf
>>
>>           If the method is specified without the signature, the
>>           command will be applied to all methods with the
>>           specified name. However, you can also specify the
>>           signature of the method in the class file format. In
>>           this case, you should enclose the arguments in
>>           quotation marks, because otherwise the shell treats the
>>           semicolon as command end. For example, if you want to
>>           exclude only the indexOf(String) method of the String
>>           class from being compiled, use the following:
>>
>>
>> -XX:CompileCommand="exclude,java/lang/String.indexOf,(Ljava/lang/Strin
>> g;)I"
>>
>>           You can also use the asterisk (*) as a wilcard for
>>           class and method names. For example, to exclude all
>>           indexOf() methods in all classes from being compiled,
>>           use the following:
>>
>>           -XX:CompileCommand=exclude,*.indexOf
>>
>>           The commas and periods are aliases for spaces, making
>>           it easier to pass compiler commands through a shell.
>>           You can pass arguments to -XX:CompileCommand using
>>           spaces as separators by enclosing the argument in
>>           quotation marks:
>>
>>           -XX:CompileCommand="exclude java/lang/String indexOf"
>>
>>           Note that after parsing the commands passed on the
>>           command line using the -XX:CompileCommand options, the
>>           JIT compiler then reads commands from the
>>           .hotspot_compiler file. You can add commands to this
>>           file or specify a different file using the
>>           -XX:CompileCommandFile option.
>>
>>           To add several commands, either specify the
>>           -XX:CompileCommand option multiple times, or separate
>>           each argument with the newline separator (\n). The
>>           following commands are available:
>>
>>           break
>>                Set a breakpoint when debugging the JVM to stop at
>>                the beginning of compilation of the specified
>>                method.
>>
>>           compileonly
>>                Exclude all methods from compilation except for
>>                the specified method. As an alternative, you can
>>                use the -XX:CompileOnly option, which allows to
>>                specify several methods.
>>
>>           dontinline
>>                Prevent inlining of the specified method.
>>
>>           exclude
>>                Exclude the specified method from compilation.
>>
>>           help Print a help message for the -XX:CompileCommand
>>                option.
>>
>>           inline
>>                Attempt to inline the specified method.
>>
>>           log  Exclude compilation logging (with the
>>                -XX:+LogCompilation option) for all methods except
>>                for the specified method. By default, logging is
>>                performed for all compiled methods.
>>
>>           option
>>                This command can be used to pass a JIT compilation
>>                option to the specified method in place of the
>>                last argument (option). The compilation option is
>>                set at the end, after the method name. For
>>                example, to enable the BlockLayoutByFrequency
>>                option for the append() method of the StringBuffer
>>                class, use the following:
>>
>>
>> -XX:CompileCommand=option,java/lang/StringBuffer.append,BlockLayoutByFrequency 
>>
>>
>>                You can specify multiple compilation options,
>>                separated by commas or spaces.
>>
>>           print
>>                Print generated assembler code after compilation
>>                of the specified method.
>>
>>           quiet
>>                Do not print the compile commands. By default, the
>>                commands that you specify with the
>>                -XX:CompileCommand option are printed; for
>>                example, if you exclude from compilation the
>>                indexOf() method of the String class, then the
>>                following will be printed to standard output:
>>
>>                CompilerOracle: exclude java/lang/String.indexOf
>>
>>                You can suppress this by specifying the
>>                -XX:CompileCommand=quiet option before other
>>                -XX:CompileCommand options.
>>
>>      -XX:CompileCommandFile=filename
>>           Sets the file from which JIT compiler commands are
>>           read. By default, the .hotspot_compiler file is used to
>>           store commands performed by the JIT compiler.
>>
>>           Each line in the command file represents a command, a
>>           class name, and a method name for which the command is
>>           used. For example, this line prints assembly code for
>>           the toString() method of the String class:
>>
>>           print java/lang/String toString
>>
>>           For more information about specifying the commands for
>>           the JIT compiler to perform on methods, see the
>>           -XX:CompileCommand option.
>>
>>      -XX:CompileOnly=methods
>>           Sets the list of methods (separated by commas) to which
>>           compilation should be restricted. Only the specified
>>           methods will be compiled. Specify each method with the
>>           full class name (including the packages and
>>           subpackages). For example, to compile only the length()
>>           method of the String class and the size() method of the
>>           List class, use the following:
>>
>> -XX:CompileOnly=java/lang/String.length,java/util/List.size
>>
>>           Note that the full class name is specified, including
>>           all packages and subpackages separated by a slash (/).
>>           For easier cut and paste operations, it is also
>>           possible to use the method name format produced by the
>>           -XX:+PrintCompilation and -XX:+LogCompilation options:
>>
>> -XX:CompileOnly=java.lang.String::length,java.util.List::size
>>
>>           Although wildcards are not supported, you can specify
>>           only the class or package name to compile all methods
>>           in that class or package, as well as specify just the
>>           method to compile methods with this name in any class:
>>
>>           -XX:CompileOnly=java/lang/String
>>           -XX:CompileOnly=java/lang
>>           -XX:CompileOnly=.length
>>
>>
>>
>> On 12/10/13 7:41 AM, alexey zhebel wrote:
>>> I am sorry for another email, but the previous one was rejected. I
>>> should be a member of the jdk8-dev list now.
>>>
>>> Best regards,
>>> Alexey Zhebel
>>>
>>> On 10.12.2013 13:05, alexey zhebel wrote:
>>>> Sorry, here are the instructions.
>>>>
>>>> *Scope of Review*
>>>> _Sanity check content only_ as opposed to reviewing the nroff markup
>>>> itself.
>>>>
>>>> *How To View A Man Page*
>>>> 1. Download the nroff file in a directory
>>>> 2. Bring up a terminal window and change to that directory.
>>>> 3. View a man page with a command of the form "man -M man {pagename}".
>>>> For example, to view the javap man page, run the command:
>>>>
>>>>       $ man -M man javap
>>>>
>>>> Notes:
>>>> - (Linux and Mac only.) The -t option to the man command will
>>>> generate typeset output in PostScript format and send it to stdout:
>>>>
>>>>       $ man -M man -t javap > javap.ps
>>>>
>>>> PostScript can be displayed using Preview (on Mac) and by the Gnome
>>>> Document Viewer (Linux/Gnome). (On Solaris, the man -t option will
>>>> send the output to a printer, which might not be what you want.)
>>>>
>>>> If bullets render as a funny character, set Remote Character Set to
>>>> UTF-8 in your Putty terminal (Change Settings... > Window >
>>>> Translation > Remote character set > UTF-8)
>>>>
>>>> *What Changed*
>>>> I fixed descriptions for three options:
>>>> -XX:CompileCommand
>>>> -XX:CompileCommandFile
>>>> -XX:CompileOnly
>>>>
>>>> When viewing a man page, type /-XX:CompileCommand and press Enter to
>>>> go directly to that option. The other two follow it directly.
>>>> Best regards,
>>>> Alexey Zhebel
>>>> On 10.12.2013 0:54, Vladimir Kozlov wrote:
>>>>> Alexey,
>>>>>
>>>>> Can you show resulting output text? It is difficult to review these
>>>>> nroff changes.
>>>>>
>>>>> Thanks,
>>>>> Vladimir
>>>>>
>>>>> On 12/9/13 12:05 PM, alexey zhebel wrote:
>>>>>> Hi all!
>>>>>>
>>>>>> I fixed the bug from the subject in the source for the tools 
>>>>>> docs. The
>>>>>> corresponding HTML reference page was reviewed by Kumar and 
>>>>>> Vladimir.
>>>>>> This request is for the same changes to the nroff man pages which 
>>>>>> are
>>>>>> single-sourced with the HTMLs.
>>>>>>
>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8027709
>>>>>> Webrev: http://cr.openjdk.java.net/~azhebel/8027709/webrev/
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>
>>>
>



More information about the jdk8-dev mailing list