YourKit Java Profiler Open Source License Request

Laurent Bourgès bourges.laurent at gmail.com
Tue May 7 08:44:20 UTC 2013


Andrew,

I confirm oprofile (0.96 on my fedora 14) works just fine (see below).

Do you recommend me to use the latest (git) version ? 0.96 is quite old
(2011)

Could you explain me a bit how to get sample counts corresponding to the
complete benchmark (few minutes long) ?
should I use the event argument to set the highest count (reset) value ?

By default, oprofile uses: CPU_CLK_UNHALTED:100000:0:1:1

opcontrol --event=CPU_CLK_UNHALTED:400000

What is the maximum value I can set  ?

[bourgesl at jmmc-laurent test]$ opreport -l -t 0.1 | grep pisces
CPU: Intel Westmere microarchitecture, speed 2800 MHz (estimated)
*Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit
mask of 0x00 (No unit mask) count 100000
*1513281  37.5074  9729.jo                  java                     int
sun.java2d.pisces.Renderer$ScanlineIterator.next()
648128   16.0642  9729.jo                  java                     void
sun.java2d.pisces.Renderer._endRendering(int, int, int, int)~1
394000    9.7655  9729.jo                  java                     void
sun.java2d.pisces.Renderer.addLine(float, float, float, float)
101770    2.5224  9729.jo                  java                     void
sun.java2d.pisces.PiscesTileGenerator.getAlpha(byte[], int, int)
98196     2.4338  9729.jo                  java                     void
sun.java2d.pisces.Stroker.quadTo(float, float, float, float)
92658     2.2966  9729.jo                  java                     void
sun.java2d.pisces.PiscesCache.copyAARow(int[], int, int, int)
74131     1.8374  9729.jo                  java                     void
sun.java2d.pisces.PiscesRenderingEngine.pathTo(float[],
java.awt.geom.PathIterator, sun.awt.geom.PathConsumer2D)
53440     1.3245  9729.jo                  java                     void
sun.java2d.pisces.Renderer.quadTo(float, float, float, float)
44042     1.0916  9729.jo                  java                     void
sun.java2d.pisces.Stroker.lineTo(float, float)
35301     0.8750  9729.jo                  java                     int
sun.java2d.pisces.Stroker.computeOffsetQuad(float[], int, float[], float[])
34214     0.8480  9729.jo                  java                     void
sun.java2d.pisces.Stroker.drawRoundJoin(float, float, float, float, float,
float, boolean, float)
33533     0.8311  9729.jo                  java                     void
sun.java2d.pisces.Renderer.curveBreakIntoLinesAndAdd(float, float,
sun.java2d.pisces.Curve, float, float)
33051     0.8192  9729.jo                  java                     void
sun.java2d.pisces.PiscesRenderingEngine.strokeTo(sun.java2d.pisces.RendererContext,
java.awt.Shape, java.awt.geom.AffineTransform, float,
sun.java2d.pisces.PiscesRenderingEngine$NormMode, int, int, float, float[],
float, sun.awt.geom.PathConsumer2D)
32941     0.8165  9729.jo                  java                     float
sun.java2d.pisces.Curve.falsePositionROCsqMinusX(float, float, float, float)
32398     0.8030  9729.jo                  java                     int
sun.java2d.pisces.PiscesRenderingEngine$NormalizingPathIterator.currentSegment(float[])
30308     0.7512  9729.jo                  java                     void
sun.java2d.pisces.Stroker.emitReverse()
23163     0.5741  9729.jo                  java                     int
sun.java2d.pisces.Stroker.findSubdivPoints(sun.java2d.pisces.Curve,
float[], float[], int, float)
20532     0.5089  9729.jo                  java                     int
sun.java2d.pisces.Curve.rootsOfROCMinusW(float[], int, float, float)
14668     0.3636  9729.jo                  java                     void
sun.java2d.pisces.Stroker.finish()
10103     0.2504  9729.jo                  java                     void
sun.java2d.pisces.Stroker.emitCurveTo(float, float, float, float, float,
float, float, float, boolean)
7497      0.1858  9729.jo                  java                     void
sun.java2d.pisces.Stroker.drawJoin(float, float, float, float, float,
float, float, float, float, float)
7115      0.1763  9729.jo                  java                     int
sun.java2d.pisces.Helpers.cubicRootsInAB(float, float, float, float,
float[], int, float, float)
6183      0.1532  9729.jo                  java                     void
sun.java2d.pisces.Dasher.lineTo(float, float)
4962      0.1230  9729.jo                  java                     void
sun.java2d.pisces.Renderer.curveTo(float, float, float, float, float, float)
4681      0.1160  9729.jo                  java                     boolean
sun.java2d.pisces.Renderer.endRendering()

FYI, here is the shell script I run:
[bourgesl at jmmc-laurent test]$ cat profile.sh
JAVA_OPTS="-server -XX:+PrintCommandLineFlags -XX:-PrintFlagsFinal
-XX:-TieredCompilation "
JAVA_TUNING="-Xms128m  -Xmx128m"
#JAVA_TUNING="-Xms2048m  -Xmx2048m"

CLASSPATH=/home/bourgesl/NetBeansProjects/PiscesTests/dist/Java2DPiscesTests.jar

BOOTCLASSPATH=""

DURATION="2000"

echo "CP:      $CLASSPATH"
echo "Boot CP: $BOOTCLASSPATH"

echo "JVM path"
which java

echo "Java version"
java -version

*
JAVA_CMD="/home/bourgesl/libs/openjdk/jdk8/build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/java"

AGENT="-agentpath:/usr/lib64/oprofile/libjvmti_oprofile.so"

opcontrol --event=default

opcontrol --no-vmlinux

opcontrol --init
opcontrol --start

$JAVA_CMD $BOOTCLASSPATH $AGENT $JAVA_OPTS $JAVA_TUNING -cp $CLASSPATH
it.geosolutions.java2d.MapBench $DURATION

opcontrol --shutdown

*
Thanks for your support,
Laurent


2013/5/6 Andrew Haley <aph at redhat.com>

> On 05/06/2013 04:12 PM, Laurent Bourgès wrote:
> > Could you give advices on how to use it with custom OpenJDK builds,
> andrew
>
> IME it Just Works.  The oprofile shipped with Linux distros has
> everything you need, and you just need to use -agentpath: when you
> start the VM.
>
> Andrew.
>
>



More information about the discuss mailing list