
Claudio Miranda
(3320) Tools and Tips to Diagnose Performance Issues
Technical long talk 50 min
Tuesday, 2008-06-24, 17:30 - 18:20, Arena 3
Claudio Miranda - Summa Technologies (speaker)
Rate this talk:
Topics
Abstract
At this speech I want to provide to the audience, my experience on Java
technology related to solve performance issues on applications at development
and production stage. I want to point 3 main artifacts: tools, tips and
performance patterns.
* Which tools ?
Almost everywhere (mailing lists, forums, websites) people like to recommend a
profiler tools to help find some cpu or memory issue.
At this point I want to provide 2 different scenarios: intrusive vs. non
intrusive tools, as they are monitoring and profiling.
Intrusive tools, are those where it needs many configuration details to start to
use (configure jvm parameters, native libraries, OS permission, internet
connectivity, buy software, source code available, debug mode), like profilers
and debuggers.
Non intrusive tools, are those that someone can just monitor the system and do
some systems dumps to later analyze them.
At this point I want to provide which tools are best used on specific
scenarios.
Tools like: JVM monitoring (jstat, jstack, jconsole, jinfo, jmap), VisualGC, SAP
Memory Analyzer, IBM Heap Roots, IBM Heap Analyzer, Thread Dump Analyzer,
NetBeans Profiler, JXInsight, etc.
* Which tips ?
When customer calls for help and the application is running in production, they
are desperate, because their system is not being capable to support its
business. At this point is very interesting, to understand the situation to
better analyze the IT ecosystem there.
Then I want to provide my expertise, and talk about my little process to
understand, analyze, test and solve the whole issue, and not get in to the same
desperate bandwagon as the customer staff are.
* Performance Patterns
There are some programming patterns, that is very easy to see and grab some
performance issues there, like:
- bad logging configuration
- pools not aligned (database, threads, http request, etc.)
- GC algorithms (too much gc)
- cache (remove unneeded objects)
- parsing and serialization (memory and I/O)
- database usage (bad queries)
This is an session for experienced developers.






