Review request for JDK-8027709: JDK8 docs on -XX:CompileOnly option are incorrect
alexey zhebel
alexey.zhebel at oracle.com
Wed Dec 11 08:55:24 PST 2013
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?
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