Java Performance Tuning

Java(TM) - see bottom of page

|home |services |training |newsletter |tuning tips |tool reports |articles |resources |about us |site map |contact us |
Tools: | GC log analysers| Multi-tenancy tools| Books| SizeOf| Thread analysers|

Our valued sponsors who help make this site possible
AppDynamics: Get complete browser to backend visibility. Monitor Now! 

New Relic: Try free w/ production profiling and get a free shirt! 

ManageEngine's Site24x7: End-to-End analysis on Java EE web transactions. Sign up for FREE! 

Further resources for Java Performance Tuning

JProfiler
Get rid of your performance problems and memory leaks!

Chart Java Jitter with jHiccup
Monitor and identify pauses in your Java apps. Download now

Use jKool analytics as a service
Spot patterns in time-series data - real-time and free


Java Performance Training Courses
COURSES AVAILABLE NOW. We can provide training courses to handle all your Java performance needs

See Your Message Here
You could have your tool advertised here, to be seen by thousands of potential customers

Java Performance Tuning, 2nd ed
The classic and most comprehensive book on tuning Java

Java Performance Tuning Newsletter
Your source of Java performance news. Subscribe now!
Enter email:


AppDynamics
AppDynamics: Get complete browser to backend visibility. Monitor Now!

New Relic
New Relic: Try free w/ production profiling and get a free shirt!

ManageEngine
ManageEngine's Site24x7: End-to-End analysis on Java EE web transactions. Sign up for FREE!


JProfiler
Get rid of your performance problems and memory leaks!

Chart Java Jitter with jHiccup
Monitor and identify pauses in your Java apps. Download now

Use jKool analytics as a service
Spot patterns in time-series data - real-time and free


Books

We extract tips from any relevant chapters officially available online, and these tips can be found on the tips page. The Book Reviews section has links to reviews on the majority of Java performance books.

After receiving several suggestions/requests that the book URLs should link to a bookshop rather than the publisher, I've set the URLs to link to Amazon's pages for each book.

Java performance books

(From Amazon UK), (From Amazon) Java Performance Tuning 2nd edition (Java Series (O'Reilly))
Author Jack Shirazi. Even better than the previous best performance book (the 1st edition).

(From Amazon UK), (From Amazon) Java Performance Tuning (Java Series (O'Reilly))
Author Jack Shirazi. Everything you could want in a performance tuning book ;-). One chapter available online - see the tips page where the tips from the chapter has been extracted.

(From Amazon UK), (From Amazon) Java Performance and Scalability, Volume 1: Server-Side Programming Techniques
Author Dov Bulka.

(From Amazon UK), (From Amazon) Enterprise Java Performance
Authors Steven Halter, Steven Munroe. Two chapters available online - see the tips page where the tips from the chapters have been extracted.

(From Amazon UK), (From Amazon) Java 2 Performance and Idiom Guide
Authors Craig Larman and Rhett Guthrie. Worth noting that this is one third performance and two thirds idioms.

(From Amazon UK), (From Amazon) Java Platform Performance: Strategies and Tactics
Authors Steve Wilson and Jeff Kesselman. Two chapters available online - see the tips page where the tips from the chapters have been extracted.

(From Amazon UK), (From Amazon) Practical Java Programming Language Guide
Author Peter Haggar. Not purely performance, but does include a good-size section on performance. The Praxis list from that section is on the Tuning Tips page.

(From Amazon UK), (From Amazon) High-Performance Java Platform Computing: Multithreaded and Networked Programming
Authors George K. Thiruvathukal and Thomas W. Christopher. Two chapters available online - see the tips page where the tips from the chapters have been extracted.

(From Amazon UK), (From Amazon) Java Strategies : High-Performance Application Development for the Internet and Intranets
Author Debra Cameron. This book is listed at $280. If anyone wants to send me a used copy, or knows of any chapters officially available online, I'd be delighted. From the look of the editorial review, this is someone's white paper report. My guess is that it's now outdated since it was published in March 1998.

(From Amazon UK), (From Amazon) Inside The Java Virtual Machine, 2nd Edition
Author Bill Venner. Bill's website has lots of interesting information. The Inside the Java 2 Virtual Machine book is mostly available online, and has some useful info for performance tuners.

(From Amazon UK), (From Amazon) Building Scalable and High-Performance Java Web Applications: Using J2EE(TM) Technology
Author Greg Barish.

(From Amazon UK), (From Amazon) Fast Java: Performance Tuning Guide
Author Achut Reddy. Due out Dec 1st 2001 last time I looked.

(From Amazon UK), (From Amazon) J2EE Performance Testing
Authors Peter Zadrozny, Philip Aston.

(From Amazon UK), (From Amazon) Performance Analysis for Java Websites
Authors Stacy Joines, Ruth Willenborg, Ken Hygh. Seems to aimed at WebSphere users.

(From Amazon UK), (From Amazon) Java Enterprise Best Practices (O'Reilly)
Various O'Reilly authors (includes an explicit performance chapter and many performance tips throughout).

(From Amazon UK), (From Amazon) Java Pitfalls: Time-Saving Solutions and Workarounds to Improve Programs
Authors Michael C. Daconta (Editor), Eric Monk, J. Paul Keller, Bohnenberger, Keith Bohnenberger.

Other performance books

(From Amazon UK), (From Amazon) Web Performance Tuning: Speeding Up the Web (O'Reilly Nutshell)
Author Patrick Killelea. Patrick's website includes a lot of book is online, and has some useful info for performance tuners.

(From Amazon UK), (From Amazon) Writing Efficient Programs
Author Jon Louis Bentley. Note this is out of print.

(From Amazon UK), (From Amazon) The Art of Computer Programming, Volumes 1-3
Author Donald E. Knuth.

(From Amazon UK), (From Amazon) Performance Engineering of Software Systems
Author Connie Smith.

(From Amazon UK), (From Amazon) High-Performance Client/Server
Authors Chris Loosley and Frank Douglas.

(From Amazon UK), (From Amazon) System Performance Tuning
Author Mike Loukides.

Automating Web Tests with TestMaker
Author Frank Cohen.

Java Testing and Design, From Unit Testing to Automated Web Tests (Prentice Hall)
Author Frank Cohen

(From Amazon UK), (From Amazon) Linux Performance Tuning and Capacity Planning
by Jason Fink, Matthew Sherer, Kurt Wall.

(From Amazon UK), (From Amazon) Sun Performance and Tuning: Java and the Internet
Authors Adrian Cockcroft and Richard Pettit. Not actually much Java specific in the way of tuning tips, despite the title. More Sun (aka Solaris) than Java really.

(From Amazon UK), (From Amazon) Windows 2000 Performance Guide
Authors Mark Friedman & Odysseas Pentakalos. Chapter 5, "Multiprocessing" is available online at http://www.oreilly.com/catalog/w2kperf/chapter/ch05.html

(From Amazon UK), (From Amazon) Windows NT Performance Monitoring, Benchmarking, and Tuning
Authors Mark T. Edmead and Paul Hinsberg.

(From Amazon UK), (From Amazon) Windows NT Applications: Measuring and Optimizing performance
Author Paul Hinsberg.

(From Amazon UK), (From Amazon) Server Load Balancing (O'Reilly)
by Tony Bourke

(From Amazon UK), (From Amazon) Web Caching (O'Reilly Internet Series)
by Duane Wessels.

Java structures books

(From Amazon UK), (From Amazon) Data Structures & Algorithms in Java
Authors Mitchell Waite and Robert Lafore.

(From Amazon UK), (From Amazon) Data Structures & Algorithm Analysis in Java
Author M. Weiss.

Other Java books

(From Amazon UK), (From Amazon) Java 2 Micro Edition : Professional Developer's Guide (Professional Developer's Guide Series)
Author Eric Giguere. One chapter available online - see the tips page where the tips from the chapters have been extracted.

Book Reviews

http://www.javaworld.com/javaworld/jw-03-2001/jw-0323-perfbooks.html
Book review of six Java performance books.

http://www.javaworld.com/javaworld/jw-12-2000/jw-1215-threadbooks.html
Book review of six Java threads books.

(Free) Profiling Tools (profilers and profile analysis tools)

http://appdynamics.com/products-editions.php
(Free) AppDynamics application performance management and monitoring

http://www.quest.com/jprobe/profiler_freeware.asp
(Free) JProbe freeware version

http://sourceforge.net/projects/xlink/
(Free) Open source j2ee monitor

http://fprofiler.sourceforge.net/
(Free) Fprofiler, bytecode injection profiler using BCEL.

http://developers.sun.com/dev/coolstuff/jvmstat/docs.html
(Free) jvmstat: Always on, low impact JVM performance monitoring for HotSpot JVMs

http://developers.sun.com/dev/coolstuff/jvmstat/v2/windows.html
(Free) Sun's jvmstat performance analysis tool now available for Windows

http://sourceforge.net/projects/jmechanic/
(Free) jMechanic is an Eclipse Java IDE plugin providing Java Profiling tools such as CPU Sampling and Heap Summary

http://www.sable.mcgill.ca/~bdufou1/AdaptJ/main.html
(Free) AdaptJ: A Dynamic Application Profiling Toolkit for Java

http://www.virtualmachine.de/
(Free) heapprofile, zero-overhead JVMPI plugin: stays inactive during runtime and simply dumps a very simple image of the Java heap on request

http://www.eclipse.org/hyades/"
(Free) Hyades is an integrated test, trace and monitoring environment, based on Eclipse

http://edocs.bea.com/wljrockit/docs81/jra/index.html
(Free) JRockit Runtime Analyzer

http://sourceforge.net/projects/eclipsecolorer/
(Free) Eclipse profiler - plugin for profiling Java applications inside of Eclipse

http://www.cs.usfca.edu/projects/usfjprof/
(Free) USFJProf Java code profiling tool from a masters project

http://research.sun.com/projects/jfluid
(Free) On-the-fly dynamic profiling of HotSpot JVMs. Experimental Sun tool

http://sourceforge.net/projects/jptc/
(Free) Java Performance TestClient

http://oss.metaparadigm.com/jmemprof/
(Free) Java Web-based open source memory profiler

http://www.khelekore.org/jmp/
(Free) Robert Olofsson's Java memory profiler, JMP.

http://alphaworks.ibm.com/tech/heapanalyzer
(Free) HeapAnalyzer IBM Java heap leak analyzer

http://www.mernst.org/ariadna/
(Free) Ariadna JVMTI Heap Analysis Tool for analyzing 5.0+ memory leaks

http://jcoverage.sourceforge.net/
(Free) Wolfgang Jung's performance profiler

http://www.javaworld.com/javaworld/jw-12-2001/jw-1207-hprof.html
(Free) The SDK profiler explained (-Xrunhprof, -prof, -Xprof, -Xaprof, -Xhprof).

http://www.javaworld.com/javaworld/javatips/jw-javatip92.html
(Free) Jesper G?rtz's JVMPI intro article with code to help you start rolling your own profiler

http://mmoebius.gmxhome.de/eclipse/resources.htm#mem_mon
(Free) Eclipse memory monitor plugin

http://starship.python.net/crew/garyp/jProf.html
(Free) Gary Pennington's open source JDK1.2 (JVMPI based) profiler.

http://www.geocities.com/moellep/debug/HeapInspector.html
(Free) Paul Moeller's heap inspector tool for Win32 Java apps.

http://commerce.bea.com/products/weblogicserverconsoleextension/wlsext_home.jsp
(Free) The WebLogic Server Performance Monitor Console Extension

http://www.alphaworks.ibm.com/tech/heaproots?open&ca=daw-rss-s8
(Free) HeapRoots tool for debugging memory leaks in Java applications through analysis of "heap dumps." from IBM JVMs

http://www.thoughtcrime.org/profiler.html
(Free) Contention Profiler, profiles thread contention points in a multi-threaded Java program.

http://www.clarkware.com/software/profiler.zip
(Free) Simple profiler class for timing code.

http://www.clarkware.com/software/JUnitPerf.html
(Free) JUnitPerf, JUnit test decorators to measure performance and scalability.

http://ejp.sourceforge.net/
(Free) EJP, Extensible Java profiler.

http://sourceforge.net/projects/simpleprofiler
(Free) Simple heap profiler (open source).

http://www7b.boulder.ibm.com/wsdd/techjournal/0202_rangaswamy/rangaswamy.html
(Free) Websphere performance monitoring infrastructure.

http://www.alphaworks.ibm.com/tech/jinsight
(Free) IBMs tool for analyzing Java program execution performance and memory.

http://www.experimentalstuff.com/Technologies/TracingJVM/index.html
(Free) Modified JVM for tracing execution

http://www.alphaworks.ibm.com/tech/sockperf
(Free) A Socket level profiler.

http://www.itworld.com/AppDev/716/UIR971001perf/ and http://www.sun.com/sun-on-net/performance/gpercol/
(Free) Metrognome & Gpercollator profiling tool

http://www.itworld.com/Net/3603/UIR990401perf/
(Free) Adrian Cockroft's percollator.se web site performance monitor

Profile Viewers

http://yusuke.homeip.net/samurai/?english
(Free) Samurai: GUI application for analyzing JVM thread dumps and verbosegc logs

http://jrat.sourceforge.net/
(Free) JRat Runtime Analysis Toolkit

http://www-1.ibm.com/support/docview.wss?uid=swg24004782
(Free) HeapWizard: Java Heap Analyzer for diagnosing memory leaks, for IBM JVM only

http://developer.java.sun.com/developer/technicalArticles/GUI/perfanal and http://developer.java.sun.com/developer/technicalArticles/Programming/perfanal/index.html
(Free) Nathan Meyers' PerfAnal Performance Analysis Tool

http://www.tagtraum.com/
(Free) (See the JPT Tool Report) Hendrik Schreiber's GCViewer, which visualizes the output of GC logging generated from the -verbosegc option.

http://developer.java.sun.com/developer/technicalArticles/Programming/GCPortal/
(Free) Sun's GCPortal tool, analyses JVM heap activity from verbosegc output

http://www.hp.com/products1/unix/java/java2/hpjtune/infolibrary/index.html
(Free) (See the JPT Tool Report) HPjtune for analyzing garbage collection from the -verbosegc output

http://www.hp.com/products1/unix/java/hpjmeter/index.html
(Free) (See the JPT Tool Report) HPjmeter views and analyzes Xrunhprof output

http://www.inetmi.com/~gwhi/ProfileViewer/ProfileViewer.html
(Free) Greg White's ProfileViewer views output from running with -prof option (1.1.x JDKs, and -Xrunhprof:cpu=old output of Java 2)

http://www.capital.net/~dittmer/profileviewer/index.html
(Free) Ulf Dittmer has taken over support of ProfileViewer

http://www.physics.orst.edu/~bulatov/HyperProf/
(Free) Vladimir Bulatov's hyperbolic browser (HyperProf) views output from running with -prof option (1.1.x JDKs, and -Xrunhprof:cpu=old output of Java 2)

http://java.sun.com/people/billf/heap/index.html
(Free) Sun's Heap Analysis Tool (HAT) for analysing output from -Xrunhprof (JDK 1.2+)

http://www.experimentalstuff.com/Technologies/GCspy/index.html
(Free) GCSpy garbage collection visualization tool

http://www.websphere-world.com/article.php?sid=690
(Free) PmiTester quries and reports WebSphere performance data

http://www.websphere-world.com/article.php?sid=693
(Free) PerfSummary.jsp, basic performance monitoring assistance for WebSphere

JDBC profilers

http://www.irongrid.com/catalog/product_info.php?products_id=30
(Free) (See the JPT Tool Report) IronGrid's IronEye SQL: capture and analyze SQL queries.

http://sqlprofiler.jahia.org
(Free) JDBC SQL Profiling tool: SELECT query analysis which can generate an SQL script that creates the most efficient indexes, based on the results of profiling SQL.

http://www.onjava.com/pub/a/onjava/2001/12/05/optimization.html
(Free) Explaining how to create JDBC wrappers for measuring and logging JDBC calls, classes included.

http://www.p6spy.com/
(Free) P6Spy for logging JDBC calls (open source)

http://java.isavvix.com/codeexchange/codeexchange-viewdetail.jsp?id=11
(Free) GenDbClasses, generates JDBC wrapper classes. Useful for logging.

http://corbatrace.tuxfamily.org/
(Free) Tool for tracing communications between Corba objects.

(Not Free) Profiling Tools (profilers and profile analysis tools)

Note that several IDEs have their own integrated profilers, but I don't list most of those here.

APM solutions (also J2EE profilers)

See Our APM article for more about APM.

http://www.tidalsoftware.com/products/products_Tidal_Intersperse.asp
(Commercial) Tidal Intersperse, APM solution with application mapping, business process tracing, and aggregate SLA monitoring capabilities.

http://www.dynatrace.com/en/Diagnostics.aspx
(Commercial) dynaTrace Diagnostics application performance management solution

http://www.wilytech.com/solutions.html
(Commercial) Wily Introscope J2EE performance analyser

http://www.precise.com/Products/www?c=product&refId=169
(Commercial) Veritas's Indepth, providing server-side J2EE performance monitoring

http://www.sitraka.com/performasure/
(Commercial) (See the JPT Tool Report) Quests's PerformaSure J2EE performance analyser

http://www.cyanea.com/solution_home.html
(Commercial) Cyanea/One J2EE monitor

http://www.candle.com/performanceanalyzer
(Commercial) Candle's PathWAI J2EE monitor

http://www.performant.com/products.html
(Commercial) Performant's OptiBench J2EE performance analyser

http://www.dirig.com/solutions/dirig_app.html
(Commercial) Dirig Application Performance Platform (APP) integrated J2EE performance management suite

http://www.ca.com/solutions/enterprise/networks/athena/welcome.htm
(Commercial) CA's Athena, providing server-side J2EE performance monitoring.

http://www.hyperformix.com/products/products.htm
(Commercial) HyPerformix J2EE performance analyzers

http://www.altaworks.com/product/index.htm
(Commercial) Altaworks Panorama J2EE performance monitor.

http://www.proactivenet.com/
(Commercial) ProActive Net J2EE application server monitor.

http://www.compuware.com/products/vantage/vantageanalyzer.asp
(Commercial) (See the JPT Tool Report) Compuware's Vantage Analyzer Java performance monitoring and analysis solution.

http://www.compuware.com/products/devpartner/java/
(Commercial) "Improve Java Code Performance and Reliability with DevPartner Java Edition"

http://www.compuware.com/products/strobe/default.htm
(Commercial) Compuware Strobe APM solution

http://www.jinspired.com/products/jxinsight/index.html
(Commercial) JInspired's JInspired's JXInsight application performance management solution

J2SE profilers

http://www.appperfect.com/products/devsuite/jp.html
(Commercial) AppPerfect J2EE / JVM Profiler

http://www.j-sprint.com
(Commercial) (See the JPT Tool Report) Cheap fully featured Java profiler.

http://www.ej-technologies.com/jprofiler/overview.html
(Commercial) (See the JPT Tool Report) EJ-Technologies provide the jprofiler profiler.

http://www.javix.com/
(Commercial) The Javix Program Analyzer

http://www.borland.com/optimizeit/index.html
(Commercial) (See the JPT Tool Report) Borland's OptimizeIt! performance profiler

http://java.quest.com/jprobe/jprobe.shtml
(Commercial) (See the JPT Tool Report) Quest's JProbe performance profiler

http://www.semdesigns.com/Products/Profilers/JavaProfiler.html
(Commercial) Semantic Designs Java profiler

http://www.yourkit.com/home/index.jsp
(Commercial) YourKit Memory Profiler

http://www-3.ibm.com/software/ad/studioappdev/
(Commercial) (See the JPT Tool Report) WebSphere Studio (includes Profiling Tool)

http://developer.intel.com/vtune/analyzer/index.htm
(Commercial) The VTune Performance Analyzer

http://www.rational.com/products/quantify/index.jtmpl

http://www.rational.com/products/quantify_nt/index.jsp
(Commercial) Visual Quantify profiling tool by Rational Software

http://www.towerj.com/pressroom/analyzer.shtml
(Commercial) TowerJ Application Performance Analyzer

http://www.ilog.com/products/oplstudio/overview.cfm
(Commercial) ILOG Studio profiling tools.

http://www.eqase.com
(Commercial) eQASE Auditor performance profiler

http://www.segue.com/html/s_solutions/s_corba/s_sobserver_overview.htm
(Commercial) A distributed application profiler.

http://www.parasoft.com/wizard
(Commercial) CodeWizard for Java from ParaSoft Corporation

http://www.4thpass.com
(Commercial) SourceGuard

http://www.metamata.com/products/debug_top.html
(Commercial) Metamata Debugger (some people list this as a profiler, though it looks like a plain debugger to me)

http://www.visicomp.com/
(Commercial) VisiVue: Runtime Software Visualization for Java. Not a profiler but a graphical displayer of program execution. However does give a high level view of performance.

Java to native code compilers

http://gcc.gnu.org/java/
(Free) The Java GNU Compiler (GCJ) is part of GCC. GCJ can compile Java source or Java bytecodes to either native code or Java class files.

http://www.excelsior-usa.com/jet.html
(Commercial) JET is an optimizing Java to native code compiler that statically compiles Java bytecodes directly into native code, just like traditional C, C++ compilers.

http://www.naturalbridge.com/bullettrain.html
(Commercial) NaturalBridge BulletTrain Java to native code compiler

http://www.windriver.com/products/html/fastj_compiler.html
(Commercial) Wind River Systems Diab FastJ Java to native code compiler

http://www.metrowerks.com/desktop/java/?features
(Commercial) Metroworks Codewarrior for Java, Java to native code compiler.

http://www.cs.vu.nl/manta/
(Free) Manta compiler with Fast RMI.

Optimized classes

http://trove4j.sourceforge.net
(Free) The Trove project, an open source free fast implementation for Java collections and additional collection classes.

http://sourceforge.net/projects/amberarcher
(Free) The AmberArcher class library is open sourced. Includes Classfile parser/writer; reloading Classloader; UNIX syslog client protocol; an asynchronously updated Map; and cache and pool framework support.

http://jakarta.apache.org/commons/collections.html
(Free) Jakarta collections, which includes some performance optimized classes

http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
(Free) Doug Lea's util.concurrent library contains more efficient versions of things like linked lists that are optimized for use concurrent by producer-consumer applications.

http://jade.dautelle.com/
(Free) JADE. Many optimized packages: XML parser, readers/writers, string manipulators

http://www.mathcs.emory.edu/dcl/util/
(Free) VolatileHashMap (WeakHashMap with weak values rather than keys), int key HashMaps, 5.0 java.util.concurrent backports, connection pool, socket wrappers, in-process sockets, various Stream classes (Fork, redirecting, tee, null, compressed)

http://alphaworks.ibm.com/tech/aio4j
(Free) Asynchronous IO for Java replaces java.io and java.nio functionality but is intended to be more scalable

http://alphaworks.ibm.com/tech/ms4j
(Free) Method Scheduler for Java (MS4J) is a robust scheduler component that allows developers to execute methods on Java objects asynchronously and/or repeatedly.

http://valuelist.sourceforge.net/
(Free) Implementation of the Core J2EE Patterns - Value List Handler

http://pcj.sourceforge.net/
(Free) Primitive collections

http://spin.sourceforge.net/
(Free) Spin is a transparent threading solution for non-freezing Swing applications.

http://www.kataba.com/func/Func.asp
(Commercial) Kataba Functions library, up to 100 X faster than reflection by converting reflection calls to compiled interface calls.

http://foxtrot.sourceforge.net/
(Free) Foxtrot API to use threads with the Swing.

http://uic.sourceforge.net/
(Free) UICompiler rapid prototyping tool for GUI building, includes action policies for threading Swing actions

http://speedo.objectweb.org/
(Free) JDO implementation with caching, prefetching, and both optimistic and pessimistic transaction modes

https://animation.dev.java.net/
(Free) JGoodies Animation framework enables you to produce time-based real-time animations in Java

http://jodd.sourceforge.net/
(Free) Various classes including SQL execution time monitor and a connection pool

http://www.kataba.com/coll/About.asp
(Commercial) Kataba collection classes, improved versions of the core collection classes

http://xml.coverpages.org/ni2002-08-20-b.html
(Free) Tiny lightweight XML processor for J2ME apps.

http://www.builtsoftware.com/products/StringTheory/
(Commercial) StringTheory, optimized String classes

http://kxml.enhydra.org/
(Free) Small footprint XML pull parser and writer suitable for all Java platforms including the J2ME

http://www.japisoft.com/fastparser/
(Free) FastParser: a High performance Java XML parser

http://java-game-lib.sourceforge.net
(Free) A Lightweight Java Games Library extension. Includes high-performance 3D, memory addresses and hi-res timers.

http://gongolo.usr.dsi.unimi.it/~vigna/MG4J/
(Free) MG4J: open source implementation of Managing Gigabytes inverted-index compression techniques.

http://xmlenc.sourceforge.net/
(Free) Light-weight XML Encoding Library

http://www.crionics.com/projects/fhm/fhm.html
(Free) Olivier Refalo's Fast Hash Map class and supplementary classes.

http://www.jars.com/classes/jresout.cgi?resource=10376
(Free) Fast XML parser.

https://whirlycache.dev.java.net/
(Free) Whirlycache is a fast, configurable in-memory object cache for Java

http://valuelist.sourceforge.net/
(Free) Implementation of the Value List Handler Patterns

http://piccolo.sourceforge.net/
(Free) Piccolo is a small, extremely fast XML parser for Java.

http://proxool.sourceforge.net/
(Free) Proxool JDBC driver that provides a connection pool wrapper around another Driver of your choice.

http://java.isavvix.com/codeexchange/codeexchange-viewdetail.jsp?id=102
(Free) Timed and Softreference caches.

http://www.devx.com/java/free/articles/gt052002/gt052002-1.asp
(Free) Article detailing a bit stream class, for saving space when dealing with bits.

http://fastutil.dsi.unimi.it/
(Free) Sebastiano Vigna's fastUtil. Type-specialized hash maps and sets with a small memory footprint faster access and insertion.

http://java.isavvix.com/codeexchange/codeexchange-viewdetail.jsp?id=7
(Free) ConnectionPoolManager. A JDBC connection pool manager.

Other Performance Testing/Benchmarking/Analysis Tools

http://www.JavaPerformanceTuning.com/tools/jamon/index.shtml
(Free) (See the JPT Tool Report) Steve Souza's JAMon (Java Application Monitor) framework for monitoring applications. Suitable for production systems.

http://grinder.sourceforge.net/
(Free) The Grinder pure Java load-testing framework.

http://alphaworks.ibm.com/tech/apera
(Free) Application Performance Evaluator and Resource Allocation Tool APERA is a tool for performance modeling and evaluation, resource allocation, and capacity planning. APERA helps to build performance models for J2EE applications, solve the models, and choose the right configurations for the applications. It is a plug-in in Eclipse or WebSphere Studio.

http://www.sable.mcgill.ca/step/
(Free) STEP system for encoding general program trace data in a flexible and compact format.

http://www.orbeon.com/oxf/oxfmark
(Free) OXF Mark is a server-side Java benchmark intended to be representative of real server code

http://www.welofunc.com/
(Free) Welofunc open source load tester

http://www.opendemand.com/openload/
(Commercial) OpenDemand's OpenLoad Load testing solution

http://alphaworks.ibm.com/tech/cprt
(Free) Client Perceived Response Time, for measuring web service performance a from client perspective

http://www.alphaworks.ibm.com/tech/bwlm
(Free) Business Workload Manager, enables instrumentation of applications in order to monitor the performance of transactions across a distributed environment.

http://aopclsuite.sourceforge.net/tracing.html
(Free) Tracing classloader.

http://sourceforge.net/project/showfiles.php?group_id=51479
(Free) Java GUI testing utility.

http://www.alphaworks.ibm.com/tech/wptools
(Free) IBMs Web performance tools: stress and record, for web load testing

http://www.experimentalstuff.com/Technologies/GCold/index.html
(Free) GCold garbage collection stress benchmark

http://www.harringtonweb.com/~brh/jnetsim/
(Free) JNetSim, Java network simulator for analyzing Java network communications.

http://java.sun.com/j2ee/ecperf/
(Free) Kit and Specification for a performance workload meant to measure the scalability and performance of Enterprise JavaBeans (EJB) servers and containers.

http://www-3.ibm.com/software/webservers/appserv/benchmark3.html
(Free) Trade3 is the third generation of the WebSphere end-to-end benchmark and performance sample application.

http://www.urbancode.com/projects/ejbbenchmark/default.jsp
(Free) Urbancode's EJB benchmark recently updated

http://www.pushtotest.com/ptt/saskit.html
(Free) PushToTest open source benchmark Web Services Performance Kit, measures the performance of Web Services.

http://www.empirix.com/empirix/web+test+monitoring/testing+solutions/ejb+component+testing.html
(Commercial) Empirix's Bean-test EJB testing tool, automatically generates test scripts to help determine EJB performance bottlenecks.

http://www.yoda.arachsys.com/java/jbench/
(Free) Simple benchmarking framework

http://java.sun.com/j2ee/ecperf
(Free) ECperf benchmark toolkit

http://www.objexcel.com/workingjava.htm
(Free) Some benchmarks of servlets in web servers. Includes code.

http://www.pankaj-k.net/xpb4j/
(Free) XPB4J Java XML benchmark.

http://www.sunworld.com/sunworldonline/swol-10-1997/swol-10-perf_p.html
(Free) Article describing Adrian Cockroft's Metrognome class and GPercollator tool (Page last updated October 1997).

http://www.volano.com/mark.html
(Free) Volano benchmarking tool.

http://www.minq.se/products/pureload/index.html
(Commercial) Stress tester.

Optimizers

http://www.nq4.de/webSite/JoGa/joga.html
(Free) JoGa Java optimizer with global analysis

http://www.jars.com/classes/jresout.cgi?resource=11661
(Free) JCMP is a java byte code optimizer/compressor/obfuscator.

http://freshmeat.net/projects/jamit/
(Free) Jamit intended for analyzing access modifiers, but can eliminate dead code for smaller class sizes.

http://dev2dev.bea.com/codelibrary/code/wlp_cache_monitoring_tool.jsp
(Free) Weblogic Portal Cache Monitoring Tool

http://www.Velocitop.com/product.html
(Commercial) (See the JPT Tool Report) Velocitop's Catapult JDBC performance analyzer and optimizer.

http://www-svca.mercuryinteractive.com/products/production_tuning/
(Commercial) Mercury Interactive ProTune optimizer.

http://www-i2.informatik.rwth-aachen.de/~markusj/jopt/
(Free) Jopt: Markus Jansen's free Java Class File Optimizer

http://www.preemptive.com/index.html
(Commercial) PreEmptive's DashO optimizing recompiler.

http://www.flex-compiler.lcs.mit.edu/Harpoon/
(Free) FLEX: An optimizing Java compiler framework from MIT

http://www.alphaworks.ibm.com/tech/jax
(Commercial) JAX size optimizer from IBM - alphaWorks

http://www.alphaworks.ibm.com/formula/jres
(Free) jres resource manager and compressor from IBM - alphaWorks

http://www.e-t.com/jshrink.html
(Commercial) Jshrink size optimizer from Eastridge Technology

http://www.condensity.com
(Commercial) Condensity optimizer/obfuscater utility from Plumb Design

http://proguard.sourceforge.net
(Free) ProGuard class file shrinker

http://jarg.sourceforge.net/
(Free) Jarg bytecode optimizer and classfile shrinker

http://jode.sourceforge.net/
(Free) Jode bytecode optimizer

http://www.cs.purdue.edu/homes/hosking/bloat/
(Free) Bloat, Bytecode-Level Optimization and Analysis Tool

Other Tools

http://jcache.sourceforge.net/index.html
(Free) JCache Open Source version of JSR-107 JCache (in alpha)


(Free) HotSwap class reloading client (1.4+ tool)

http://www.quartzscheduler.org/
(Free) OpenSymphony Quartz Job Scheduler

http://www.jgroups.org/javagroupsnew/docs/index.html
(Free) Toolkit for Reliable Multicast Communication

http://abbot.sourceforge.net/
(Free) Abbot Java GUI Test Framework

http://jocache.sourceforge.net/
(Free) ShiftOne JOCache Java open source object caching library.

http://jniosocket.sourceforge.net/
(Free) framework for creating a highly scalable application (10000+ socket connections) using NIO.

http://www.842technology.com/product.jsp
(Commercial) Engine/J, highly scalable efficient HTTP server enhancer

http://www.objectweb.org/c-jdbc/
(Free) Database cluster middleware that allows any Java application to transparently access a cluster of databases through JDBC

http://sourceforge.net/projects/prevayler/
(Free) Prevalence fast, simple and transparent business object persistence, with ACID transaction, fault-tolerance, replication and load-balancing.

http://classworlds.codehaus.org/
(Free) classworlds is a framework for container developers who require complex manipulation of Java's ClassLoaders.

http://www.leesw.com/timewindow/index.html
(Free) Timewindow is a utility for time-limiting java classes by inserting time-limiting code.

http://www.gemstone.com/products/gemfire/index.html
(Commercial) GemStone's GemFire provides high performance shared-memory objects, objects sharable across multiple JVMs

http://www.isocra.com/products/livestoreregister.php
(Commercial) (See the JPT Tool Report) Isocra's livestore, a transparent JDBC data cache

http://www.gemstone.com/products/facets.html
(Commercial) Shared scalable transactional workspace

http://www.bluestream.com/dr/?page=Home/Products/StreamStore/&level=2
(Commercial) StreamStore pure Java efficient embeddable database engine.

http://bcel.sourceforge.net/
(Free) BCEL, the Bytecode Engineering Library, a bytecode generator.

http://www.experimentalstuff.com/Technologies/HotSwapTool/index.html
(Free) HotSwap: GUI front-end to dynamic class redefinition capability of 1.4 JVMs

http://wrapper.sourceforge.net/doc/english/index.html
(Free) The Java Service Wrapper, tool to make your Java application a service on various OSs. Essential for 24/7.

http://www.brics.dk/JSA/
(Free) BRICS Java String Analyzer

http://www.javaforu.com/speeddemon/speeddemonIndex.htm
(Free) Open source tool to accelerate file HTTP transfers by accessing multiple parts of files in parallel.

http://mckoi.com/database/index.html
(Free) Open Source Java SQL Database System.

http://www.acelet.com
(Commercial) SuperLogging, logging tool designed to serverside requirements.

http://jakarta.apache.org/jmeter/index.html
(Free) Apache Jmeter load test tool

http://www.load4j.org/
(Free) load4j open source stress testing framework

http://www.coopsoft.com/JavaProduct.html
(Free) Fault tolerant multithreaded queueing container

http://wwwhome.cs.utwente.nl/~bakkerj/jmunger/
(Free) JMunger, a tool that lets you add code to classes at runtime.

http://ikplab11.inf.ethz.ch:9000/prose/Wiki.jsp
(Free) Prose, a tool that lets you add code to classes at runtime.

Reports

http://www.rolemaker.dk/articles/evaljava/
Evaluation of Java for games. Includes the latest comparison of C++ vs Java speed. Shows that performance tuned Java code runs at a similar speed to C++.

http://webperformance.com/library/reports/index.html
WebPerformanceInc's Servlet engine performance report

http://java.sun.com/products/hotspot/docs/whitepaper/Java_HotSpot_WP_Final_4_30_01.html
The Java HotSpot Virtual Machine (updated to the version released with SDK 1.3.1)

http://www.fawcette.com/wireless/grehan/
Survey of J2ME devices looking at performance, from July 2002

http://developer.java.sun.com/developer/technicalArticles/xml/JavaTechandXML_part2/
Report comparing the performance of various Java XML technologies.

http://www.volano.com/report.html
The Volano report.

http://www.electronicstimes.com/story/OEG20010131S0032
Report on the Insilicon Java coprocessor

http://www-4.ibm.com/software/webservers/appserv/wcat.pdf
A "we're great and they suck" performance comparison by IBM of IBM WebSphere vs. Microsoft IIS.

http://www.adtmag.com/Pub/article.asp?ArticleID=2009
Non-technical article with basic performance comparisons of some leading application servers (Page last updated November 2000, Added 2001-01-19, Author Rich Seeley). Tips:

http://developer.java.sun.com/developer/technicalArticles/Networking/HotSpot/
Steven Meloan's in depth look at the HotSpot Performance Engine (June 1999)

http://www.javalobby.org/features/jpr/part3.html
The Java Performance Report, Part III from September 2, 2000, by Osvaldo Pinali Doederlein. If you are still looking for comparitive performance reports (JVM vs JVM, Java vs C), this is pretty useful.

http://www.devresource.hp.com/JavaATC/JavaPerfTune/HotSpotBench.html
Analysis of running benchmarks on HotSpot. Note that it only applies to HotSpot 1.0. HotSpot 2.0 is able to swap interpreted methods for compiled ones while the method is running.

http://www.research.ibm.com/journal/sj39-1.html
IBM research journal edition dedicated to Java performance. Mostly reports for VM or compiler builders.

http://www.developer.ibm.com/java/j2/j2perfpaper.html
IBM's VM technology and their optimizations.

http://www.sgi.com/developers/devtools/languages/javaperf.html
SGI's Cosmo Code VM technology and their optimizations.

http://www.javalobby.org/features/jpr/
Java performance report, comparing VMs.

http://www.netlib.org/benchmark/linpackjava/
Java Linpack Benchmark.

http://www.sunworld.com/sunworldonline/swol-10-1995/swol-10-perf_p.html
Complete answer about how memory is managed by Solaris. On modern operating systems, this tends to be the most difficult thing to directly measure because of the convoluted memory management of modern systems.

http://www-cse.ucsd.edu/users/wgg/JavaProf/javaprof.html
Bill and Paul's UCSD Benchmarks for Java.

http://www.webfayre.com/pendragon/cm2/index.html
Caffeine Java performance benchmarks.

http://www.meurrens.org/ip-Links/Java/CodeEngineering/papers/jcc.html
Java to C converter.

http://www.preemptive.com/performance/article.html
Article about DashO, called "Fine Tuning Java Applications" from November 1999 issue of Java Report (Page last updated November 1999, Authors Matt Weisfeld and Gabriel Torok).

http://www.irisa.fr/compose/harissa/harissa.html
Java to C converter.

http://www.unixsolutions.hp.com/products/java/mjp2/
HP report on improving Java at the VM level.

http://www.javaworld.com/javaworld/jw-09-1998/jw-09-speed.html
Mark Roulo's analysis of various VMs performances.

http://www.visionnaire.com.br/informes/JvPerfor/JvPerfor.htm
Full report on a variety of VMs and benchmarks.

Some other links

http://www.manageability.org/blog/stuff/open-source-profilers-for-java
Open Source Profilers for Java

http://www.math.tau.ac.il/~guy/pa/java.html
Huge list of academic papers on Java performance related issues

http://www.geocities.com/marcoschmidt.geo/jcomp.html
List of Java compilers

http://www.javaspecialists.co.za
Dr. Heinz Kabutz's newsletters. Not always performance focused, but usually interesting

http://www.bearcave.com/software/java/comp_java.html
Somewhat idiosyncratic set of links on compiling Java (aimed at static compilation to native code).

http://www.jdance.com/optimization.shtm
Set of optimization focused links.

http://www.javaworld.com/channel_content/jw-performance-index.shtml
Javaworld's list of their own performance related articles.

http://www.planetjavainc.com/Performance_Tips/
Nice set of organized links on various different performance areas: EJB, JDBC; JSP & servlets.

http://www.precisejava.com
Site dedicated to J2EE performance tips.

http://www.alife.co.uk/links/jdev/
Java links, including optimizers, compilers, etc.

http://www.javaolympus.com/java/PerformanceDirectory.html
Another short list of performance relaed articles.

http://tilde-hoschek.home.cern.ch/~hoschek/colt/index.htm
The Colt distribution: A set of open source libraries for High Performance Scientific and Technical Computing in Java. Contains efficient and usable data structures and algorithms competitive or superior to other toolkits.

http://www.extreme.indiana.edu/hpjava/
Java high performance comptuing links.

http://www.research.ibm.com/ninja/jhpc.html
Second Workshop on Java for High Performance Computing.

http://www.sun.com/sun-on-net/performance.html
Sun page link to performance tuning, but not much Java specific

http://internet.about.com/industry/internet/msubjavaperformance.htm
Nice list of Java performance related pages.

http://www.sunworld.com/common/swol-backissues-columns.html#perf
List of Sun articles, mostly Sun specific but some Java and some Web.

http://www.webreference.com/programming/optimize/
List of web server/html optimization links.

http://developer.netscape.com/docs/articles/tips.html
Netscape Java tips

http://os2.about.com/compute/os2/msubperftun.htm
OS/2 Link site for Java perf tuning

http://www.javaworld.com/javaworld/tools/jw-tools-testing.html
List of Java tools.

http://www.spec.org/
Spec website. Not so much Java specific info.

http://www.sun.com/sun-on-net/performance/book2ref.html
References Appendix from "Sun Performance and Tuning: Java and the Internet"

Discussion groups

http://www.javaranch.com
The Java Ranch has a number of Java discussion forums, including one devoted to performance with some interesting discussions. JavaRanch Performance Forum

http://www.theserverside.com
The Server Side has a number of Java server-side (EJB etc) focussed discussion forums, including one devoted to performance with some interesting discussions. TheServerSide Performance Forum

http://java.isavvix.com/forums/viewForum.jsp?forum=38
Performance and scalability group at Isavvix

http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=xover&group=weblogic.developer.interest.performance&utag=
BEA has a performance discussion forums for its Weblogic application server

http://www.javagaming.org/discus/
JavaGaming.org has a number of Java discussion forums, including one devoted to performance with some interesting discussions. http://www.javagaming.org/discus/messages/27/27.html

http://javadevtalk.com/
JavaDevTalk has a number of Java discussion forums, including one devoted to performance with some interesting discussions.


Last Updated: 2014-12-01
Copyright © 2000-2014 Fasterj.com. All Rights Reserved.
All trademarks and registered trademarks appearing on JavaPerformanceTuning.com are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. JavaPerformanceTuning.com is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
URL: http://www.JavaPerformanceTuning.com/resources.shtml
RSS Feed: http://www.JavaPerformanceTuning.com/newsletters.rss
Trouble with this page? Please contact us