JMP - Java Memory Profiler JMP logo
 
General
About
Installation
Licence
Changelog
Screenshot
Performance

Documentation
users_guide [ps]
users_guide [pdf]
users_guide [lyx]

Download
Source
Current version: 0.51.1
jmp.tar.gz

Other versions jmp-0.51.1.tar.gz
jmp-0.50.2.tar.gz
jmp/0.18, gtk/1.2 
jmp-0.18.tar.gz

Binaries
jmp.deb [0.48, i386]
jmp.deb [0.42, amd64]
jmp.deb [0.48, ppc]
jmp.dll [0.50.1]
gtk+/2.2.0 Win32

Old versions

Contacts
Robert Olofsson
robo@khelekore.org

  Installation

For Unix-like system the short way is the standard
./configure && make install
If you happen to use windows please see this page for a precompiled binary, or if you prefer to build it: this page.

Under solaris you will probably have to build without nls, this is done by adding the flag --disable-nls to configure. For more information about building jmp under solaris see this page.

Under HP-UX you will probably have to build without nls, this is done by adding the flag --disable-nls to configure. For more information about building jmp under HP-UX see this page.

Under Mac OS X you will probably have to build without nls, this is done by adding the flag --disable-nls to configure. For more information about building jmp under Mac OS X see this page.

Special configuration options

use the "--with-includes=dirs " to specify where the jdk is located jmp tries to use the JAVA_HOME environment variable and defaults to /usr/local/jdk if JAVA_HOME isn't set.
orc> ./configure --with-includes='/usr/local/jdk/include /usr/local/jdk/include/linux'

For JMP/0.21+ It is also possible to build a JMP that does not require gtk (neither for compilation or running). This is enabled with the switch --enable-noui to configure like this:
orc> ./configure --enable-noui

special LDFLAGS needed:
jmp tries to use pkg-config to find current gtk include files and libraries. Since jmp is in itself a shared library it needs to use the R flag for linking. So if you can build it but not run it check that the libjmp is correctly linked, it should look something like this:

bash-2.05a$ ldd libjmp.so
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x40028000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x40297000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x402fb000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x40315000)
        libm.so.6 => /lib/libm.so.6 (0x40329000)
        libpangoxft-1.0.so.0 => /usr/lib/libpangoxft-1.0.so.0 (0x4034c000)
        libpangox-1.0.so.0 => /usr/lib/libpangox-1.0.so.0 (0x4036d000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x4037a000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x403ad000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x403e7000)
        libdl.so.2 => /lib/libdl.so.2 (0x403eb000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x403ef000)
        libc.so.6 => /lib/libc.so.6 (0x4045a000)
        libXft.so.1 => /usr/X11R6/lib/libXft.so.1 (0x4058a000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x405b6000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x405bc000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x405cb000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40693000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

So if your output contains any "file not found" or similar check that jmp is linked with the rpath set.

Running:
Make sure your LD_LIBRARY_PATH includes the directory where libjmp.so is located:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
java -Xrunjmp my.fine.java.Program