Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
and Methodologies
1
Agenda
• Performance metrics
• Monitoring vs. Profiling
• Development process
2
Before Getting Started
• Performance tuning is largely an art.
• There is no one approach that is always necessarily the
right approach.
• And, there are performance issues which will require very
specialized expertise to identify the root cause, and / or
be able to recommend a solution.
3
Performance Metrics
Performance Metrics
• Throughput
• Runtime response time
• Footprint
• Perceived performance (for GUI applications)
5
Perceived Performance
6
Perceived Performance
• Start up time:
> Lazy initialization is often useful.
> Applets:
> Use Jar files to minimize requests.
> Install on client system if possible.
> Obfuscators and size reduction tools.
> Run empty applet to get VM loaded.
> Applications:
> Separate initialization thread.
> Minimize dependencies for start screen.
7
Monitoring &
Profiling
Definition: Performance Monitoring
• An act of non-intrusively collecting or observing
performance data from an operating or running
application.
• Typically a “preventative” or “proactive” type of action.
But, could be an initial step in a reactive action.
• Can be performed in production, or qualification, or
development environments.
• Helps identify or isolate potential issues without having a
severe impact on runtime responsiveness or throughput.
• Often times monitoring crosses over into trouble-shooting
or service-ability.
9
Definition: Performance Profiling
• An act of collecting or observing performance data from
an operating or running application.
• Usually more intrusive than monitoring.
• Usually a narrower focus than monitoring.
• Typically a reactive type of activity. Could be a proactive
activity in situations where performance is a well defined
systemic quality or requirement for a target application.
• Seldom performed in production environments.
• Commonly done in qualification, testing or development
environments.
10
Definition: Performance Tuning
• An act of changing tune-ables, source code and/or
configuration attribute(s) for the purposes of improving
application responsiveness and/or application throughput.
• Usually results from monitoring and/or profiling activities.
11
Development Process
Typical Development Process
Start
Analysis
Design
Code
Test
No
Quality
OK
Yes
13
Application Performance Process
Start
Analysis
Design
Code
Benchmark
Performance N Profile
OK o
Yes
Deploy
14
Application Performance Process
Start
Analysis
Design
Code
Benchmark
Performance N Profile
OK o
Yes
Monitor
Deploy
15
Performance Concepts
and Methodologies
16
16