6376899
9780974364957
Contents Preface xi Acknowledgements xiii Part I Getting Started 1 Chapter 1 Fishing for Things to Tune 3 All Roads Lead to the Source 4 When to Use the VTune_ Performance Analyzer 5 A Development Cycle Approach 5 A Performance-centric Approach 5 Some Case Histories 6 How to Find Bottlenecks 8 What Expertise Is Required? 8 Learning to Fish: A Tuning Methodology 10 Different Fishing Rods and Bait 10 No Matter What Gear You Choose, You Need a Method 10 Decide What to Catch: Your Tuning Goals 12 System-level Tuning 14 Application-level Tuning 17 Computer Architecture-level Tuning 19 Recap 20 iv VTune_ Performance Analyzer Essentials Chapter 2 Computer and Application Architecture Basics 21 Computer Architecture in a Nutshell 22 The Clock 22 Caches 23 Cache Coherency 25 Cache Line 25 Cache Hit or Miss 25 Dirty Cache 26 Multi-Way Caches Such As 8-Way Cache 26 Replacement Policies Such As LRU 27 Memory Management, Addressing, and TLBs 27 Inside the CPU 28 Processor Differences That Matter 29 Intel XScale® Technology 30 P6 Microarchitecture 30 Intel NetBurst® Microarchitecture 30 EPIC Technology 31 Recurring Themes When Tuning Software 31 Threading and Hyper-Threading Technology (HT Technology) 32 Dynamic Libraries 33 What Lies Ahead 33 Recap 34 Chapter 3 Projects, Activities, GUI, and Command Line 35 A Quick Overview 35 GUI and Command Line Interface 36 Projects and Activities 38 Tuning Environments 39 Creating Projects 39 Graphical User Interface (GUI) 43 The Tuning Browser 43 Sampling Data Views 47 Call Graph Data Views 56 Counter Monitor Data Views 58 Static Module Analysis View 59 Output Window 61 VTune_ Analyzer_s Command Line 61 Creating Projects in the Visual Studio .NET Environment 63 Recap 66 Contents v Part II Examining Your System and Applications 67 Chapter 4 Hotspot Hunting 101: Sampling 69 What Is a Hotspot? 71 Before You Begin Sampling 73 Types of Sampling 74 Time-Based Sampling 74 Using the Program Example 74 Using Your Own or Another Program 75 Step-by-Step Procedure 75 Which Application Took the Most Time? 77 Drilling Down to the Source 81 Step-by-Step Procedure 86 Drilling Down 88 Event-Based Sampling 91 Step-by-Step Procedure 91 How Often Did the Split Loads and Split Stores Occur? 94 Drilling Down to the Source 95 Step-by-Step Procedure 99 Drilling Down 101 Sampling Rates 104 Event Ratios 106 More About Sampling Events and Event Ratios 107 Sampling Over Time View 109 Configuring Sampling Over Time 112 Generating Over Time Views 113 Using Zoom 118 Saving a Zoomed-in Time Range 120 Sampling Usage Tips 124 How Sampling Analysis Works 125 Recap 126 Chapter 5 Hotspot Hunting 102: Call Graph 129 Call Graph Overview 130 To Sample or Not to Sample 131 In What Environments Does Call Graph Work? 131 What About Managed Code? 132 Before You Begin Profiling 133 Generating Base Relocations 134 Enabling Source Code View 136 vi VTune_ Performance Analyzer Essentials Configuring for Call Graph Data Collection 137 Using the Call Graph Wizard 137 Advanced Configuration Options 140 Viewing Call Graph Results 145 Function Summary 146 Graph 146 Call List 147 Hands-on Call Graph Profiling 149 Choosing a Program Example 149 The Linux Call Graph Viewer 159 Blocked Time on a Thread/Function Basis 167 Does My System Show Wait Time? 167 Why Do Sampling and Call Graph Have Different Hotspots? 167 Call Graph Usage Tips 168 How Call Graph Analysis Works 170 Recap 171 Chapter 6 Hotspot Hunting 103: Counter Monitor 173 Performance Counters, Objects, and Triggers 174 Counter MonReinders, James is the author of 'Vtune(TM) Performance Analyzer Essentials: Measurement and Tuning Techniques for Software Developers', published 2004 under ISBN 9780974364957 and ISBN 0974364959.
[read more]