This presentation will compare and contrast application behavior in Java 7 with Java 8, particularly focusing on memory management and usage. Several code examples are presented to show how to recognize and respond to common pitfalls.
SLIDE3:
Why AppDynamics?
establish credibility through
3rd party validation
Commitment to customer success
Business and customer growth
Describe our GTM model – ease of deployment, Enterprise grade, proven in the most demanding environments and high impact, fast
.
Quiz: what is the default Java stack size?
Quiz: what is the default Java stack size?
Point of slide: If you’ve ever had to manage stack size, don’t expect Java 8 behavior to be the same as Java 7
Note that you can’t directly get the stack trace depth, only the size.
Any questions on stack memory?
Question: how many modern apps have this object death rate?
Question: what common technique completely changes this picture?
Question: how many modern apps have this object death rate?
Blast from the past – Java 6 HotSpot
Summary: heap is basically the same in Java 6/7/8, but GC options change
Any questions about heap?
Ask if anybody is surprised by this, can explain this
Mention performance impact if interned strings were a big source of PermGen use in Java 6
Ask about the logo
Push on the “no max size” theme. What would happen if a program that leaked class metadata permgen in Java 6 were put onto Java 8?
Can get old behavior with MaxMetaSpaceSize
Story about how PermGen can affect monitoring tools
Retransform -> app holds onto class/meta references (reflection object caching)
A PermGen problem will be less frequent but more severe if it moves to being a metaspace problem
Ask for any questions on memory before we switch to garbage collection
Why 15-minute periods? – practical: time needed to tune program for proper rate of allocation plus doing all the runs for comparison.
Tune the program:
What are the group’s experiences?
Any questions on Java 7 results, before we move onto Java 8?
What do you think CMS looks like on Java 8 with no tuning options?
Monitoring memory and JVM stats is only a tiny part of what AppD does