Latest news
NEW: AUGUST 2023 NEWSLETTER
JULY 2023 NEWSLETTER
JUNE 2023 NEWSLETTER
MAY 2023 NEWSLETTER
APRIL 2023 NEWSLETTER
MARCH 2023 NEWSLETTER
- We list all the latest Java performance related news and articles
- "The new 4GLs aren't new languages, they are 3GLs together with intelligent IDEs"
- All the latest Java performance tips extracted in concise form
- "Strategies to prevent deadlocks: always acquire locks in a fixed order; avoid holding locks for extended periods; reduce the scope of the lock holding code block; use ReentrantLock and similar concurrent lock classes to manage locks, eg using tryLock() to acquire locks without blocking; use timeouts when acquiring locks to prevent threads from waiting indefinitely; use non-blocking algorithms and data structures to avoid deadlocks altogether"
FEBRUARY 2023 NEWSLETTER
JANUARY 2023 NEWSLETTER
DECEMBER 2022 NEWSLETTER
NOVEMBER 2022 NEWSLETTER
OCTOBER 2022 NEWSLETTER
SEPTEMBER 2022 NEWSLETTER
AUGUST 2022 NEWSLETTER
JULY 2022 NEWSLETTER
- We list all the latest Java performance related news and articles
- "DO optimize some things early - re-architecting your application is very expensive and effortful, especially when some thought at the beginning of the project let's you avoid having to make costly optimizations later"
- All the latest Java performance tips extracted in concise form
- "A common mistake for micro performance optimizations is not preventing the system from having the same performance degradation in the future after maintenance changes. A complete fix would require regression tests that prevent the improvement from degrading by monitoring the performance"
JUNE 2022 NEWSLETTER
MAY 2022 NEWSLETTER
APRIL 2022 NEWSLETTER
- We list all the latest Java performance related news and articles
- "The techniques used to make it the lowest possible overhead profiler: infrequent sampling, no stack walking, no thread matching or analysis, minimal processing of data"
- All the latest Java performance tips extracted in concise form
- "A cache pattern decision chart: 1 - if your data is crucial for startup and not highly dynamic, use a file persistent storage mechanism closer to the services to store the data; 2 - if your data is highly dynamic, use a dedicated caching technology that can handle this, with caches closer to the service or lower latency than the primary data store; 3 - if your data is not highly dynamic and can be easily invalidated, use a reverse proxy"
MARCH 2022 NEWSLETTER
FEBRUARY 2022 NEWSLETTER
- We list all the latest Java performance related news and articles
- "it's a very clear well written coverage of all the things that are wrong with using finalize() and the alternatives available to you. If you are an advanced Java developer, you should read it"
- All the latest Java performance tips extracted in concise form
- "A simple java.lang.ref.Cleaner example to clean up resources (for some
obj ) instead of implementing a finalize() method would be similar to Cleaner cleaner = Cleaner.create(); Cleaner.Cleanable cleanable = cleaner.register(obj, cleanupRunnableWhenObjGCed) and if you want to execute the clean up early, you can execute cleanable.clean() (which would execute the cleanupRunnableWhenObjGCed runnable immediately. The runnable is never executed more than once even including GCs"
JANUARY 2022 NEWSLETTER
- We list all the latest Java performance related news and articles
- "What's most interesting is how simple and straightforward the basic implementation of a Java simple agent is. If you want to try it, you can be up and running with your own agent implementation in minutes!"
- All the latest Java performance tips extracted in concise form
- "The JVM has 3 entry points: agentmain, premain, main. -javaagent uses premain, which also runs on the main thread, and you can have multiple java agents. The agentmain is on it's own thread and if you attach to a JVM you enter this thread. You can have multiple agents but there is only one entry thread"
DECEMBER 2021 NEWSLETTER
NOVEMBER 2021 NEWSLETTER
OCTOBER 2021 NEWSLETTER
- We list all the latest Java performance related news and articles
- "GC log analysis tools are very useful - and now, one of the two commercial GC log analyzers, Censum, has open sourced it's core as GCToolkit."
- All the latest Java performance tips extracted in concise form
- "Workloads have become memory bound - CPUs spend most of their time waiting for data to reach them, rather than processing that data. This means you often need to focus on optimizing getting data to the CPU to get speedups. Focus on "Instructions per cycle" - production workloads should be around 1.5 if efficient. Note that a stalled CPU is still reported as 100% utilized by the metric"
SEPTEMBER 2021 NEWSLETTER
AUGUST 2021 NEWSLETTER
JULY 2021 NEWSLETTER
JUNE 2021 NEWSLETTER
MAY 2021 NEWSLETTER
- We list all the latest Java performance related news and articles
- "Health checks, metrics, telemetry, logs, tracing, profiling - how do they all fit together? I explain"
- All the latest Java performance tips extracted in concise form
- "-Xgcpolicy:optthruput is a single generation parallel non-concurrent GC with optional compaction targeted at GC throughput; -Xgcpolicy:gencon is a parallel and concurrent 2-generation GC with concurrent collection in both generations; metronome is an incremental parallel GC with an upper bound on GC pause time; -Xgcpolicy:balanced is like optthruput but reduces the max pause time by doing smaller partial GCs where possible."
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"
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
|