Java Virtual Machine (JVM) deployments are common nowadays in enterprises of any size. Many of those installations handle millions of transactions per day and need tuning to their highest potential.
This 2-day training dives deep into the JVM internals and tool set offered by JVM’s eco-system. It also describes possible scenarios that may arise during production system support. Understanding of JVM internal architecture may help developers to write code that is more efficient; performance analysis and tuning of JVM parameters may help operations team to quicker find and report problems.
The training is aimed at Java developers with several years of experience who look into deepening their JVM knowledge as well as for system administrators looking into improving their JVM performance tuning skills.
Students must have a few years of Java software development or support experience.
All students will receive course slides as well as demo and exercise code examples.
Andrey Adamovich is a software craftsman with 15+ years of professional software design and development experience in different industries using various programming languages and technologies. Andrey's passionate about defining good development practices, documenting and presenting architecture, reuse of code and design patterns, analysis of application performance. In recent years, his focus is on automation of various parts of software delivery process as well as DevOps initiatives his company is implementing for various clients in Europe.
Andrey is a frequent conference speaker as well as a co-organizer of a local software craftsmanship community. He is one of the authors of Groovy 2 Cookbook. Andrey has a Master degree in Computer Science from the Latvian State University
Topics covered by this course include:
1. Introduction: what is a VM?
2. History of Java
3. Detailed JVM architecture:
b. byte code
c. memory model
d. class loader model
e. garbage collection
h. monitoring standards
5. Performance analysis tuning
a. Types and patterns of garbage collection
b. JMX and monitoring tools:
c. Thread dump collection and analysis tools
d. Profiling tools:
e. Memory analysis tools:
i. Eclipse MAT