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 2016

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 188 contents

A Gem from this month's extracted tips (from Brian Goetz's talk): "There are three ways to thread-safely handle state: don't share or don't mutate or coordinate access". You've probably tried all three techniques at times, but without necessarily explicitly thinking that these were your alternatives.

A note from this newsletter's sponsor : Deep dive Application Performance Monitoring
Fix performance issues with Java, .NET and Ruby platforms
Monitor app instance at $12/Month. 30-day free trial. Sign Up!

What's nice about explicitly listing these three alternatives is that you can hold that in mind, and everytime you consider a concurrency implementation, you can think through these options (the order listed in the quote is also the order of increasing likelihood of generating issues, ie the first is easiest to maintain as least likely to cause bugs).

Of course there are corresponding overheads - both "don't share" and "don't mutate" techniques tend to increase copies of data, which incurs runtime and garbage collection costs that both impact latency. You gain high throughput for lower maintenance costs, but it's very hard to maintain high throughput together with low latency with those two techniques. If you need low latency, you need "coordinate access" and, more specifically, coordinate access using lock-free techniques.

Now almost on to our usual links to tools, articles, news, talks, but first a couple of goodies: for those of you interested in following the JCrete conference, #JCrete will be used to tag related items, including (live) periscope broadcasts; and finally LinkedIn's Zhenyun Zhuang's article on SSD-Friendly Applications, linked below, is an absolute must-read if you use SSDs, and I/O performance is important to you. And if you need the tips from that or any other of this month's articles and talks, as ever they are extracted into this month's tips page.


Java performance tuning related news.


Java performance tuning related tools.

A note from this newsletter's sponsor

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


Jack Shirazi

Back to newsletter 188 contents

Last Updated: 2023-02-26
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