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 ... 

Java Performance Tuning

JProfiler
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


JProfiler
Get rid of your performance problems and memory leaks!


Latest news

NEW: APRIL 2021 NEWSLETTER

MARCH 2021 NEWSLETTER

  • We list all the latest Java performance related news and articles
    • "Being able to scale is challenging. Being able to autoscale needs you to understand what metrics determine when you need more (or fewer) resources allocated. Architecting to achieve a queueable application is fundamentally different from the ground up."
  • All the latest Java performance tips extracted in concise form
    • "There are three options to handle as much traffic as possible, which can be used in combination: scale (adding sufficient additional capacity to handle the traffic increase); overprovision (already having sufficient additional capacity to handle any traffic increase); queue (temporarily holding requests somewhere and processing when resources are available)."

FEBRUARY 2021 NEWSLETTER

JANUARY 2021 NEWSLETTER

  • We list all the latest Java performance related news and articles
    • "From JDK 17 Shenandoah will be completely concurrent except for some constant time admin operations - all pauses be under 1 millisecond!"
  • All the latest Java performance tips extracted in concise form
    • "Prioritized load shedding works by: Consistently prioritize requests across device types into NON_CRITICAL (does not affect customer experience), DEGRADED_EXPERIENCE (affects customer experience but doesn't prevent primary customer operations), CRITICAL, and score between 1 to 100 for each request given its individual characteristics; progressively throttle requests based on priority; validate by chaos testing (deliberate fault injection) for requests of specific priorities"

DECEMBER NEWSLETTER

  • We list all the latest Java performance related news and articles
    • "This momth's memory leak special covers JFR memory leak analysis and native memory leak analysis to add to the previous heap memory leak analysis special"
  • All the latest Java performance tips extracted in concise form
    • "ByteBuffer.allocate() (which creates a HeapByteBuffer) has memory allocated in the heap, while ByteBuffer.allocateDirect() (which creates a DirectByteBuffer) has memory allocated in native memory. If you use a HeapByteBuffer, OS I/O calls have to copy the data to and from the buffer; using a DirectByteBuffer allows the OS I/O calls to operate directly on the native buffer so copying can be avoided."

NOVEMBER NEWSLETTER

OCTOBER NEWSLETTER

SEPTEMBER NEWSLETTER

AUGUST NEWSLETTER

JULY NEWSLETTER

JUNE NEWSLETTER

MAY NEWSLETTER

  • We list all the latest Java performance related news and articles
    • "if you have any Serverless I really recommend watching this masterclass"
  • All the latest Java performance tips extracted in concise form
    • "Serverless invocation types: synchronous (request/response; errors returned to and retries required by the client); asynchronous (event sent by client then disconnected; event on a queue for the serverless function, serverless function called N times or M seconds - configurable, dependent on throttling - then sent to dead letter queue or on-failure destination if not processed; can route based on success and failure); stream-based (pushed in batches synchronously from eg Kinesis or DynamoDB with retries N times or M seconds; need to handle batches that have one bad event somehow, preferably from the cloud capability eg BisectBatchOnFunctionError); poller-based (poller pulls synchronously from a queue, probably in batches)"

APRIL NEWSLETTER

MARCH NEWSLETTER

  • We list all the latest Java performance related news and articles
    • "your primary GC tuning option is now to select the algorithm rather than the old 'tweaking the algorithm' way"
  • All the latest Java performance tips extracted in concise form
    • "The methodology for analyzing memory leaks is four steps: 1. Do I have a leak (and does it needs fixing - use gc logs to see); 2. What is leaking (instances of which classes - compare two heap histograms separated by enough time to see the leak); 3. What is keeping the objects alive (what instances in the app - you need a heap dump to find these); 4. Where is it leaking from (the code where the objects are created and/or assigned - any memory profiler which can sort on GC generations and provide object creation traces)."

FEBRUARY NEWSLETTER

JANUARY NEWSLETTER

  • We list all the latest Java performance related news and articles
    • "track your connections and the threads that manage them"
  • All the latest Java performance tips extracted in concise form
    • "Shuffle sharding: Shard instances (combine them into small groups) to limit the number of instances a particular request source can reach, so that if that request source causes problems (a noisy neighbour), the number of instances impacted is limited (as opposed to full balancing of requests, where the requests could go to any instance, which could potentially impact all instances); Shuffle the shards so that any random shard can contain instances that overlap other shards giving many more shards, if a source request impacts a shard, other source requests going to other shards which include an impacted instance are only partially affected and since there are many more shards you are much less likely to be using the exact same shard as the bad one."

Previous newsletters

All our previous newsletters can be viewed from here

How to use this site

This site has four main information resources:

  • The uncategorized tips page lists many other web pages with Java performance tuning related information. Each web page has its performance tuning tips extracted and listed immediately after the URL is listed. These tips are being categorized, and the tips page links to those categories currently available. If the performance area you are interested in is not yet categorized, send us an email from this page telling us the categorization you'd like to see. In any of the tips pages, use your browser's "find" or "search" option to identify particular tips you are interested in on the page, and follow up by reading the referenced web page if necessary or desired.
  • The resources page lists Java performance tuning resources including books, tools, reports, other performance tuning sites of interest, and Java performance tuning discussion groups.
  • The news pages are monthly newsletters listing any new Java performance tuning related information, together with Kirk Pepperdine's discussion group roundup and Javva The Hutt.
  • The tool reports pages are detailed introductory reports on various Java performance related tools, for both free and commercial tools.


This site has been designed to download almost as fast as possible. (Some stylistic markup and required server-side processing has been used in preference to absolute speed contraints.) The web tree contains very few graphics and almost no complex typesetting markup except for very simple tables, and the main pages can be accessed directly from the menu.

This line is only to help search engines: Java performance tuning Java tuning Java optimization Java optimize Java optimizing Java fast Java faster Java speedup Java performance Java High-Performance


Last Updated: 2021-04-28
Copyright © 2000-2021 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/index.shtml
RSS Feed: http://www.JavaPerformanceTuning.com/newsletters.rss
Trouble with this page? Please contact us