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
video
How Slack rearchitected its system to achieve zero downtime and improve latency, reliability and availability
In 2016, Slack faced a problem: the load on its backend servers had increased by 1,000x. …
book
Learning Go
Go is rapidly becoming the preferred language for building web services. While there are plenty of …
video
Parsing Algorithms
Understand the different parsing techniques and learn to build a parsing tool from scratch. About This …
book
Fundamentals of Database Indexing and Searching
Fundamentals of Database Indexing and Searching presents well-known database searching and indexing techniques. It focuses on …