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| Heap dump analysers|

Our valued sponsors who help make this site possible
JProfiler: Get rid of your performance problems and memory leaks! 

Training online: Concurrency, Threading, GC, Advanced Java and more ... 

News July 2012

Get rid of your performance problems and memory leaks!

Modern Garbage Collection Tuning
Shows tuning flow chart for GC tuning

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

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:

Training online
Threading Essentials course

Get rid of your performance problems and memory leaks!

Back to newsletter 140 contents

Every performance professional is familiar with the Knuth quote "premature optimization is the root of all evil". Many people now have a tendency to leave optimization to late in the project, which can be a valid choice - if it's not too late! But there are some early optimizations that aren't premature. If you are going to be using a lot of intensive storage I/O, it's not premature to decide early on that you'll need to have quick access storage (fast local disks or SSD) close to the application - and definitely not remote! Or to consider whether you can implement your persistent storage using in-memory storage with journaling.

A note from this newsletter's sponsor

Free Java Performance Tool - From AppDynamics
Fight fires in production with less than 2% overhead.
Gain complete visibility into your java app. Free Download!

If you are going to be distributing your application, it's not premature to avoid finely distributing the application. You only want to distribute at the component level, not at the object level, and you want to build that in as early as possible. It's not premature to avoid chatty protocols - your application-level network communications should require fewer roundtrips rather than many, every additional network roundtrip is always going to be a significant latency hit. If you know you are building a CPU intensive application component, it's not premature to build from the start the ability to run the component across multiple cores.

There are many optimizations that are not premature. Knuth's quote was actually about coding and the balance between maintaining readability vs maximum speed - readability is almost always preferable because code-level speedups often don't improve the speed of the application much, as most code isn't used much; whereas unreadable code is hugely expensive to maintain. At the design and architecture level, the quote does not apply - at these levels, you need to consider the application's use of resources in detail.

At the design and architecture level, optimization is seldom premature.

Now on to all our usual links to Java performance tools, news, articles and, as ever, all the extracted tips from all of this month's referenced articles.

A note from this newsletter's sponsor

ManageEngine: Application Performance Management for Java EE Apps.
Monitor App Servers: JBoss, WebSphere, WebLogic, JVMs and JMX Apps.
*** Monitor up to 25 App Servers, Databases & Servers at $795/Yr***.


Java performance related news.


Java performance related tools.

A note from this newsletter's sponsor

New Relic - Try New Relic today and get your free Data Nerd shirt!
Free SaaS APM tool to monitor, troubleshoot, and tune apps
running on Websphere, Weblogic, Tomcat, Jetty, JBoss, Solr, Resin


Jack Shirazi

Back to newsletter 140 contents

Last Updated: 2023-09-28
Copyright © 2000-2023 All Rights Reserved.
All trademarks and registered trademarks appearing on are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
RSS Feed:
Trouble with this page? Please contact us