Java 8 TieredCompilation Blacklist?
wolfgang.pedot at finkzeit.at
Thu Apr 16 14:22:43 UTC 2015
Thanks, that is exactly what I need.
Tests look very promising, I´ll give that a try on the real system soon.
Am 15.04.2015 21:47, schrieb Christian Thalinger:
> exclude is what you want:
> $ java -XX:CompileCommand=help
> The CompileCommand option enables the user of the JVM to control specific
> behavior of the dynamic compilers. Many commands require a pattern that defines
> the set of methods the command shall be applied to. The CompileCommand
> option provides the following commands:
> break,<pattern> - debug breakpoint in compiler and in generated code
> print,<pattern> - print assembly
> exclude,<pattern> - don't compile or inline
> inline,<pattern> - always inline
> dontinline,<pattern> - don't inline
> compileonly,<pattern> - compile only
> log,<pattern> - log compilation
> option,<pattern>,<option type>,<option name>,<value>
> - set value of custom option
> option,<pattern>,<bool option name>
> - shorthand for setting boolean flag
> quiet - silence the compile command output
> help - print this text
> The preferred format for the method matching pattern is:
> For backward compatibility this form is also allowed:
> The signature can be separated by an optional whitespace or comma:
> package/Class.method ()
> The class and method identifier can be used together with leading or
> trailing *'s for a small amount of wildcarding:
> It is possible to use more than one CompileCommand on the command line:
> -XX:CompileCommand=exclude,java/*.* -XX:CompileCommand=log,java*.*
> The CompileCommands can be loaded from a file with the flag
> -XX:CompileCommandFile=<file> or be added to the file '.hotspot_compiler'
> Use the same format in the file as the argument to the CompileCommand flag.
> Add one command on each line.
> exclude java/*.*
> option java/*.* ReplayInline
> The following commands have conflicting behavior: 'exclude', 'inline', 'dontinline',
> and 'compileonly'. There is no priority of commands. Applying (a subset of) these
> commands to the same method results in undefined behavior.
>> On Apr 14, 2015, at 3:00 AM, Wolfgang Pedot <wolfgang.pedot at finkzeit.at> wrote:
>> I have recently migrated a big-ish application from 7u40 to 8u40 and I noticed a quite substantial increase in CPU utilisation.
>> After doing some research I figured out that the cause of that is TieredCompilation which is now on by default, I have deactivated that feature and now CPU utilisation is back to normal.
>> I tested TieredCompilation before on 7u<something> and also had an increase in CPU up to the point where the application actually slowed down so I ended that test.
>> depending on the usage of the system that increases CPU without really accelerating anything (according to statistics). I have found "CompileOnly" which seems to be something to be used for test and development, is there something like a Blacklist I can use to tell the compiler NOT to compile classes in a specific package?
>> The system had been running for ~13h on 8u40 and used 1.5h of CPU-time for compilation, the previous version running on 7u40 had been up for ~62.5days and only used 36min for compilation. I did notice the much quicker warmup in the response-times after the switch to 8u40 but I dont want the system to spend so much time compiling stuff that does not really improve performance.
>> any help would be appreciated
Mit freundlichen Grüßen
Fink Zeitsysteme GmbH | Möslestraße 19-21 | 6844 Altach | Österreich
Tel: +43 5576 72388 | Fax: +43 5576 72388 14
wolfgang.pedot at finkzeit.at | www.finkzeit.at
Landesgericht Feldkirch, 72223k | USt.ld: ATU36401407
Wir erbringen unsere Leistungen ausschließlich auf Basis unserer AGB und Leistungs- und Nutzungsvereinbarung, die wir auf unserer Webseite unter www.finkzeit.at/rechtliches veröffentlicht haben.
More information about the hotspot-compiler-dev