src/share/tools/IdealGraphVisualizer/README

Tue, 08 Aug 2017 15:57:29 +0800

author
aoqi
date
Tue, 08 Aug 2017 15:57:29 +0800
changeset 6876
710a3c8b516e
parent 852
f4fe12e429a4
parent 0
f90c822e73f8
permissions
-rw-r--r--

merge

aoqi@0 1 The Ideal Graph Visualizer is a tool developed to help examine the
aoqi@0 2 intermediate representation of C2 which is commonly referred to as the
aoqi@0 3 "ideal graph". It was developed in collaboration with the University
aoqi@0 4 of Linz in Austria and has been included as part of hotspot since that
aoqi@0 5 was the primary target of the tool. The tool itself is fairly general
aoqi@0 6 with only a few modules that contain C2 specific elements.
aoqi@0 7
aoqi@0 8 The tool is built on top of the NetBeans 6.1 rich client
aoqi@0 9 infrastructure and so requires NetBeans to build. It currently
aoqi@0 10 requires Java 6 to run as it needs support for JavaScript for its
aoqi@0 11 filtering mechanism and assumes it's built into the platform. It
aoqi@0 12 should build out of the box with NetBeans 6.1 and Java 6 or later.
aoqi@0 13 It's possible to run it on 1.5 by including Rhino on the classpath
aoqi@0 14 though that currently isn't working correctly. Support for exporting
aoqi@0 15 graphs as SVG can be enabled by adding batik to the classpath which
aoqi@0 16 isn't included by default. It can be built on top of NetBeans 6.0 if
aoqi@0 17 you change the required modules to be platform7 instead of platform8.
aoqi@0 18
aoqi@0 19 The JVM support is controlled by the flag -XX:PrintIdealGraphLevel=#
aoqi@0 20 where # is:
aoqi@0 21
aoqi@0 22 0: no output, the default
aoqi@0 23 1: dumps graph after parsing, before matching, and final code.
aoqi@0 24 also dumps graph for failed compiles, if available
aoqi@0 25 2: more detail, including after loop opts
aoqi@0 26 3: even more detail
aoqi@0 27 4: prints graph after parsing every bytecode (very slow)
aoqi@0 28
aoqi@0 29 By default the JVM expects that it will connect to a visualizer on the
aoqi@0 30 local host on port 4444. This can be configured using the options
aoqi@0 31 -XX:PrintIdealGraphAddress= and -XX:PrintIdealGraphPort=.
aoqi@0 32 PrintIdealGraphAddress can actually be a hostname.
aoqi@0 33
aoqi@0 34 Alternatively the output can be sent to a file using
aoqi@0 35 -XX:PrintIdealGraphFile=filename. Each compiler thread will get it's
aoqi@0 36 own file with unique names being generated by adding a number onto the
aoqi@0 37 provided file name.
aoqi@0 38
aoqi@0 39 More information about the tool is available at
aoqi@0 40 http://wikis.sun.com/display/HotSpotInternals/IdealGraphVisualizer.

mercurial