Wiley
Wiley.com
Print this page Share

Software Performance and Scalability: A Quantitative Approach

ISBN: 978-0-470-46253-9
375 pages
May 2009, Wiley-Blackwell
Software Performance and Scalability: A Quantitative Approach (0470462531) cover image
Praise from the Reviewers:

"The practicality of the subject in a real-world situation distinguishes this book from others available on the market."
Professor Behrouz Far, University of Calgary

"This book could replace the computer organization texts now in use that every CS and CpE student must take. . . . It is much needed, well written, and thoughtful."
Professor Larry Bernstein, Stevens Institute of Technology

A distinctive, educational text onsoftware performance and scalability

This is the first book to take a quantitative approach to the subject of software performance and scalability. It brings together three unique perspectives to demonstrate how your products can be optimized and tuned for the best possible performance and scalability:

  • The Basics—introduces the computer hardware and software architectures that predetermine the performance and scalability of a software product as well as the principles of measuring the performance and scalability of a software product
  • Queuing Theory—helps you learn the performance laws and queuing models for interpreting the underlying physics behind software performance and scalability, supplemented with ready-to-apply techniques for improving the performance and scalability of a software system
  • API Profiling—shows you how to design more efficient algorithms and achieve optimized performance and scalability, aided by adopting an API profiling framework (perfBasic) built on the concept of a performance map for drilling down performance root causes at the API level

Software Performance and Scalability gives you a specialized skill set that will enable you to design and build performance into your products with immediate, measurable improvements. Complemented with real-world case studies, it is an indispensable resource for software developers, quality and performance assurance engineers, architects, and managers. It is anideal text for university courses related to computer and software performance evaluation and can also be used to supplement a course in computer organization or in queuing theory for upper-division and graduate computer science students.

 

See More
PREFACE xv

ACKNOWLEDGMENTS xxi

Introduction 1

Performance versus Scalability / 1

PART 1 THE BASICS 3

1. Hardware Platform 5

1.1 Turing Machine / 6

1.2 von Neumann Machine / 7

1.3 Zuse Machine / 8

1.4 Intel Machine / 9

1.5 Sun Machine / 17

1.6 System Under Test / 18

1.7 Odds Against Turing / 30

1.8 Sizing Hardware / 35

1.9 Summary / 37

2. Software Platform 41

2.1 Software Stack / 42

2.2 APIs / 44

2.3 Multithreading / 47

2.4 Categorizing Software / 535

2.5 Enterprise Computing / 55

2.6 Summary / 63

3. Testing Software Performance and Scalability 65

3.1 Scope of Software Performance and Scalability Testing / 67

3.2 Software Development Process / 83

3.3 Defining Software Performance / 86

3.4 Stochastic Nature of Software Performance Measurements / 95

3.5 Amdahl’s Law / 97

3.6 Software Performance and Scalability Factors / 99

3.7 System Performance Counters / 111

3.8 Software Performance Data Principles / 129

3.9 Summary / 131

PART 2 APPLYING QUEUING THEORY 135

4. Introduction to Queuing Theory 137

4.1 Queuing Concepts and Metrics / 139

4.2 Introduction to Probability Theory / 143

4.3 Applying Probability Theory to Queuing Systems / 145

4.4 Queuing Models for Networked Queuing Systems / 153

4.5 Summary / 172

5. Case Study I: Queuing Theory Applied to SOA 177

5.1 Introduction to SOA / 178

5.2 XML Web Services / 179

5.3 The Analytical Model / 181

5.4 Service Demand / 183

5.5 MedRec Application / 188

5.6 MedRec Deployment and Test Scenario / 189

5.7 Test Results / 191

5.8 Comparing the Model with the Measurements / 198

5.9 Validity of the SOA Performance Model / 200

5.10 Summary / 200

6. Case Study II: Queuing Theory Applied to Optimizing and Tuning Software Performance and Scalability 205

6.1 Analyzing Software Performance and Scalability / 207

6.2 Effective Optimization and Tuning Techniques / 220

6.3 Balanced Queuing System / 240

6.4 Summary / 244

PART 3 APPLYING API PROFILING 249

7. Defining API Profiling Framework 251

7.1 Defense Lines Against Software Performance and Scalability Defects / 252

7.2 Software Program Execution Stack / 253

7.3 The PerfBasic API Profiling Framework / 254

7.4 Summary / 260

8. Enabling API Profiling Framework 263

8.1 Overall Structure / 264

8.2 Global Parameters / 265

8.3 Main Logic / 266

8.4 Processing Files / 266

8.5 Enabling Profiling / 267

8.6 Processing Inner Classes / 270

8.7 Processing Comments / 271

8.8 Processing Method Begin / 272

8.9 Processing Return Statements / 274

8.10 Processing Method End / 275

8.11 Processing Main Method / 276

8.12 Test Program / 277

8.13 Summary / 279

9. Implementing API Profiling Framework 281

9.1 Graphics Tool—dot / 281

9.2 Graphics Tool—ILOG / 284

9.3 Graphics Resolution / 286

9.4 Implementation / 287

9.5 Summary / 300

10. Case Study: Applying API Profiling to Solving Software Performance and Scalability Challenges 303

10.1 Enabling API Profiling / 304

10.2 API Profiling with Standard Logs / 313

10.3 API Profiling with Custom Logs / 320

10.4 API Profiling with Combo Logs / 325

10.5 Applying API Profiling to Solving Performance and Scalability Problems / 333

10.6 Summary / 337

APPENDIX A STOCHASTIC EQUILIBRIUM AND ERGODICITY 339

A.1 Basic Concepts / 339

A.2 Classification of Random Processes / 343

A.3 Discrete-Time Markov Chains / 345

A.4 Continuous-Time Markov Chains / 349

A.5 Stochastic Equilibrium and Ergodicity / 351

A.6 Birth–Death Chains / 357

APPENDIX B MEMORYLESS PROPERTY OF THE EXPONENTIAL DISTRIBUTION 361

APPENDIX C M/M/1 QUEUES AT STEADY STATE 363

C.1 Review of Birth–Death Chains / 363

C.2 Utilization and Throughput / 364

C.3 Average Queue Length in the System / 365

C.4 Average System Time / 365

C.5 Average Wait Time / 366

INDEX 367

See More
Henry H. Liu, PhD, is Software Developer at BMC Software. Previously, he worked as a physicist in the national labs of China, France, Germany, and the United States. He also worked at Intel and Amdocs as a software performance engineer prior to joining BMC. He was an Alexander von Humboldt Research Fellow from 1990–1992 in Germany. He was awarded the Best Paper Award at CMG's 2004 conference in the category of software performance engineering. He is a certified Sun Enterprise Architect, IBM XML Developer, and Microsoft .NET Developer. Dr. Liu is most interested in applying his previous scientific research disciplines to solving software performance and scalability challenges.
See More
Buy Both and Save 25%!
+

Software Performance and Scalability: A Quantitative Approach (US $107.95)

-and- Oracle Database Performance and Scalability: A Quantitative Approach (US $101.95)

Total List Price: US $209.90
Discounted Price: US $157.42 (Save: US $52.48)

Buy Both
Cannot be combined with any other offers. Learn more.
Back to Top