“Optimizing performance without first measuring is like shooting in the dark without knowing what you are aiming at.” — Paul Hsieh.
From a software performance standpoint, “hot spots” are an area of intense activity.
They’re hot spots because they’re frequently executed code paths with some sort of friction or bottleneck.
They represent potential optimization paths for improving the performance of your code or design.
You find the hot spots by measuring and analyzing the system. Stepping back, we can use “Hot Spots” more loosely.
Performance Hot Spots at a Glance
We can use Performance Hot Spots to gather, organize, and share principles, patterns, and practices for performance.
You can think of Performance Hot Spots as a map or frame.
Remember that even with a map, you still need to set goals and measure. You need to know what good looks like and you need to know when you’re done.
The benefit of a map or frame is that you have a set of potential areas to help you focus your exploration as well as find and share knowledge.
Why Performance Hot Spots
There’s several reasons for using Performance Hot Spots:
- Performance Hot Spots are a way to chunk up the performance space.
- Performance Hot spots create more meaningful filters.
- It’s a living map to help you think about performance issues and solutions.
- You can use Performance Hot Spots to help guide your inspections (performance design, code, and deployment inspections).
- You can use Performance Hot Spots to divide and conquer your performance issues.
Hot Spots for Performance (Application Level)
The Performance Hot Spots at the application level are:
- Coupling / Cohesion
- Data Access
- Data Structures / Algorithms
- Exception Management
- Resource Management
- State Management
Performance Issues Organized by Performance Hot Spots
Here are some performance issues organized by Performance Hot Spots.
|Coupling and Cohesion
|Data Structures / Algorithms
Case Studies / Examples
Using Performance Hot Spots produces results. Here are examples of Performance Hot spots in Action:
- Performance Guides / Books. We used Performance Hot Spots to help frame the patterns & practices book Improving .NET Application Performance and Scalability and Performance Testing Guidance for Web Applications.
- Performance Engineering. The heart of our patterns & practices Performance Engineering is Performance Hot Spot driven. We focus on the high ROI activities and each activity uses Performance Hot Spots to focus results.
- Performance and Scalability Frame. We use the Performance Hot Spots to create the Performance and Scalability Frame.
- Performance Design Guidelines. We used Performance Hot Spots to create the Performance Frame, which is an organizing backdrop for Performance Design Guidelines.
- Performance Inspections. We used Performance Hot Spots to drive our patterns & practices Performance Design Inspection prescriptive guidance
- Performance Checklists. We organize our Performance Design Checklist using the Performance Hot Spots.
- Performance Modeling. We use the Performance Hot Spots as a way to guide and structure our patterns & practices Performance Modeling approach.
Questions for Reflection
Hot spots are a powerful way for sharing information. Here’s some questions to help you turn insight into action:
- How can you leverage Performance Hot Spots to improve performance results in your organization?
- How can you organize your bodies of knowledge using Performance Hot Spots?
- How can you improve sharing patterns and anti-patterns using Performance Hot Spots?
- How can you improve checklists using Performance Hot Spots?
- How can you tune and prune your security inspections using Performance Hot Spots?
You Might Also Like
Performance Hot Spots Framework for Software
Agile Architecture Framework
Agile Lifecycle Framework
Agile Performance Engineering Framework
Extreme Programming at a Glance
How Agile and Lean Help Business
Roles on Agile Teams
Scrum at a Glance
Software Methodologies at a Glance
Waterfall to Agile
What is Agile?