Book description
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.
Table of contents
- Copyright
- Quantitative Software Engineering Series
- Preface
- Acknowledgments
- Introduction
-
1. The Basics
- 1. Hardware Platform
- 2. Software Platform
-
3. Testing Software Performance and Scalability
- 3.1. SCOPE OF SOFTWARE PERFORMANCE AND SCALABILITY TESTING
- 3.2. SOFTWARE DEVELOPMENT PROCESS
- 3.3. DEFINING SOFTWARE PERFORMANCE
- 3.4. STOCHASTIC NATURE OF SOFTWARE PERFORMANCE MEASUREMENTS
- 3.5. AMDAHL'S LAW
- 3.6. SOFTWARE PERFORMANCE AND SCALABILITY FACTORS
- 3.7. SYSTEM PERFORMANCE COUNTERS
- 3.8. SOFTWARE PERFORMANCE DATA PRINCIPLES
- 3.9. SUMMARY
- 3.10. RECOMMENDED READING
- 3.11. EXERCISES
-
2. Applying Queuing Theory
-
4. Introduction to Queuing Theory
- 4.1. QUEUING CONCEPTS AND METRICS
- 4.2. INTRODUCTION TO PROBABILITY THEORY
- 4.3. APPLYING PROBABILITY THEORY TO QUEUING SYSTEMS
-
4.4. QUEUING MODELS FOR NETWORKED QUEUING SYSTEMS
- 4.4.1. Queuing Theory Triad I: Response Time, Throughput, and Queue Length (Little's Law)
- 4.4.2. M/M/1 Model (Open)
- 4.4.3. Queuing System: With Feedback versus Without Feedback
- 4.4.4. Queuing Theory Triad II: Utilization, Service Time, and Response Time
- 4.4.5. Multiple Parallel Queues versus Single-Queue Multiple Servers
- 4.4.6. M/M/m/N/N Model (Closed)
- 4.4.7. Finite Response Time in Reality
- 4.4.8. Validity of Open Models
- 4.4.9. Performance and Scalability Bottlenecks in a Software System
- 4.4.10. Genealogy of Queuing Models
- 4.5. SUMMARY
- 4.6. RECOMMENDED READING
- 4.7. EXERCISES
-
5. Case Study I: Queuing Theory Applied to SOA
- 5.1. INTRODUCTION TO SOA
- 5.2. XML WEB SERVICES
- 5.3. THE ANALYTICAL MODEL
- 5.4. SERVICE DEMAND
- 5.5. MedRec APPLICATION
- 5.6. MedRec DEPLOYMENT AND TEST SCENARIO
- 5.7. TEST RESULTS
- 5.8. COMPARING THE MODEL WITH THE MEASUREMENTS
- 5.9. VALIDITY OF THE SOA PERFORMANCE MODEL
- 5.10. SUMMARY
- 5.11. RECOMMENDED READING
- 5.12. EXERCISES
-
6. Case Study II: Queuing Theory Applied to Optimizing and Tuning Software Performance and Scalability
- 6.1. ANALYZING SOFTWARE PERFORMANCE AND SCALABILITY
-
6.2. EFFECTIVE OPTIMIZATION AND TUNING TECHNIQUES
- 6.2.1. Wait Events and Service Demands
- 6.2.2. Array Processing—Reducing Vi
- 6.2.3. Caching—Reducing Wait Time (Wi)
- 6.2.4. Covering Index—Reducing Service Demand (Di)
- 6.2.5. Cursor-Sharing—Reducing Service Demand (Di)
- 6.2.6. Eliminating Extraneous Logic—Reducing Service Demand (Di)
- 6.2.7. Faster Storage—Reducing Data Latency (Wi)
- 6.2.8. MPLS—Reducing Network Latency (Wi)
- 6.2.9. Database Double Buffering—An Anti Performance and Scalability Pattern
- 6.3. BALANCED QUEUING SYSTEM
- 6.4. SUMMARY
- 6.5. RECOMMENDED READING
- 6.6. EXERCISES
-
4. Introduction to Queuing Theory
-
3. Applying API Profiling
- 7. Defining API Profiling Framework
-
8. Enabling API Profiling Framework
- 8.1. OVERALL STRUCTURE
- 8.2. GLOBAL PARAMETERS
- 8.3. MAIN LOGIC
- 8.4. PROCESSING FILES
- 8.5. ENABLING PROFILING
- 8.6. PROCESSING INNER CLASSES
- 8.7. PROCESSING COMMENTS
- 8.8. PROCESSING METHOD BEGIN
- 8.9. PROCESSING RETURN STATEMENTS
- 8.10. PROCESSING METHOD END
- 8.11. PROCESSING MAIN METHOD
- 8.12. TEST PROGRAM
- 8.13. SUMMARY
- 8.14. RECOMMENDED READING
- 8.15. EXERCISES
- 9. Implementing API Profiling Framework
- 10. Case Study: Applying API Profiling to Solving Software Performance and Scalability Challenges
- A. Stochastic Equilibrium and Ergodicity
- B. Memoryless Property of the Exponential Distribution
- C. M/M/1 Queues at Steady State
Product information
- Title: Software Performance and Scalability: A Quantitative Approach
- Author(s):
- Release date: May 2009
- Publisher(s): Wiley-Blackwell
- ISBN: 9780470462539
You might also like
book
Software Architecture Metrics
Software architecture metrics are key to the maintainability and architectural quality of a software project and …
audiobook
Generative AI in the Real World: Chip Huyen on Finding Business Use Cases for Generative AI
O’Reilly’s Generative AI in the Enterprise survey reported that people have trouble coming up with appropriate …
book
Deciphering Data Architectures
Data fabric, data lakehouse, and data mesh have recently appeared as viable alternatives to the modern …
audiobook
Fundamentals of Software Architecture: An Engineering Approach
Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real …