compiled method info
Krystal Mok
rednaxelafx at gmail.com
Thu May 3 15:07:50 PDT 2012
Hi Xin,
+1 with John, Google is your friend when you start investigating things, especially when the top hits are pretty good.
Comments inline,
On 2012-5-4, at 4:20, Xin Tong <xerox.time.tech at gmail.com> wrote:
> On Thu, May 3, 2012 at 4:13 PM, Christian Thalinger
> <christian.thalinger at oracle.com> wrote:
>>
>> On May 3, 2012, at 11:54 AM, Xin Tong wrote:
>>
>>> I am new to hotspot JVM. I am wondering how can I get a log of all the
>>> method compiled
>>
>> You can print the compiled methods with -XX:+PrintCompilation.
>
> This will print the compiled method to the stdout, is there a way to
> force it to some output file ?
You can learn more about all available VM options in the *globals.hpp files.
Supposing you can read Chinese, there's a thread that I posted some time ago that had a list of all *globals.hpp files in it: http://hllvm.group.iteye.com/group/topic/27945
In runtime/globals.hpp, you can find the flags LogVMOutput and LogFile that should meet your needs. Use them like this (if you're using a product build):
-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=<file_path>
The default path for the log is ./hotspot.log.
>>
>>> and how can i get the intermediate representation
>>
>> This is more complicated. Do you mean the graph that's produced during the compile?
>>
>>> and
>>> optimizations performed on one particular method ?
>
> Yes. I used to work on some other compiler framework in which one is
> able to print the graph after every optimization.
Search for C1Visualizer and IdealGraphVisualizer and read their manual. Should be enough to get you started.
>
>>
>> Depends on the compiler used. You might get an idea what's going on using -XX:+TimeCompiler (this is only available in a non-product build).
>>
>
> I used make all to build openJDK. however, all the developer options
> are not available. How do i make a non-product build. I do not want a
> debug build, as debug build tend to run slower than prod build.
>
That's what a fastdebug build is for. It's faster than a (slow) "debug" build, even though slower than a product build. You could refer to a script that Charles Nutter wrote for building HotSpot:
https://gist.github.com/1148321 . Use "build.sh fastdebug" to get a fastdebug build.
- Kris
>
> -- Xin
>
>> -- Chris
>>
>>>
>>> Thanks
>>>
>>> Xin
>>
More information about the hotspot-compiler-dev
mailing list