Fixing your performance and concurrency bugs
summary
Bank systems handle about 10M retrievals/day and every 10ms matters; GC tuning cuts max pauses from 7.5s to below ~3s and sometimes from minutes to under a second. Static analysis rules (hosted on GitHub as pmd jpinpoint) add 60+ PMD rules that detect unconditional log concatenation, misuse of SLF4J placeholders, unsafe singletons and unguarded mutable fields. Fixes include replacing concatenation with SLF4J params, adding @GuardedBy/@Immutable annotations, using synchronized or concurrent collections, and resolving an outage caused by a shared counter.
AI-written summary · about
chapters (10)
- 0:00Introduction to performance bugs
- 1:48Banking system performance challenges
- 4:23Hunting performance and concurrency bugs
- 7:17Fixing bugs early in development
- 8:24Sharing bug immunity with GitHub
- 12:43Logging performance pitfalls
- 16:15Concurrency bugs in Spring applications
- 21:31Memory leak from unsafe thread pool
- 26:54Call to action and community contribution
- 27:57Q&A session
related talks
01h 28mThe dark art of performance tuning or how to become a performance hero ...
56mThe Dark Arts of Performance Tuning
52mGC Tuning & Troubleshooting Crash Course
42mHow a Two-Decade-Old Issue Still Haunts Software Scalability
56mJava Performance Analysis
39mG1GC Concepts and Performance Tuning
47mManaging and monitoring a JVM
35mTackling Performance Issues with YourKit
