Software Performance and Scalability: A Quantitative Approach (Quantitative Software Engineering Series)


Product 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.
�
Software Performance and Scalability: A Quantitative Approach (Quantitative Software Engineering Series) Review
Performance is all about measurement, but it is also about understanding the performance characteristics of the system enough to make the measurements meaningful. Typical real-world enterprise computing configurations are a complex mixture of hardware and software that whose individual pieces need explanation and Henry Liu's book does an admirable job covering this important background. Starting with the hardware topics like Hyperthreading, Chipsets, the different kinds of RAID disk controllers, and network adapters are covered. It is harder for the book to do justice on the software configuration, because there is such a broad variety of software vendors and products, but the book does define basic architectures (e.g. Client-Server, 3 Tier, Service oriented Architecture). The book is also useful as a dictionary for the gaggle of terms and acronyms pervasive in the industry (OLTP, SOAP, WSDL, COTS ...).My favorite part of the book is the chapter on performance testing. Here the author shows offers some sound, practical guidance on measuring real world applications. He goes into detail on how to use the windows Perfmon and TaskManager software to get useful performance data. Perhaps is most valuable advice is pointing users to the performance metrics that PerfMon and TaskManager CAN measure that are most important for finding system bottlenecks. He very briefly touches on performance issues in the databases themselves, I would have liked to see a more thorough exploration of this space (after all there really are only 3 big players in the database software world). Nevertheless I found this section quite useful. Throughout this section there are measurements of real-world systems that were analyzed and I found these examples to be useful.
For those more theoretically inclined, a third of the book is devoted to queuing theory and case studies that apply the theory to real world problems like deciding how much changes in the configuration (upgrading disks, CPUs, network) will have on overall response time. Each chapter comes with a set of problems and s reading list for further depth, making the book suitable for an advanced computer science class.
Finally the last third of the book is devoted to what Liu calls `API profiling', which is the instrumentation of the software with timestamps to methodically determine where the time is being spent. This is perhaps the part of the book that will age most quickly. It really is a sad testament on the state of performance tools that Liu had to build his own profiling infrastructure to get the detailed data he needed to perform investigations. Thankfully, this is changing. For example on Windows there is an instrumentation technology called Event Tracing for Windows (ETW) and tools that use it like the free download of XPERF which are destined to be even more important than PerfMon is today. Nevertheless, while many of the details of these later chapter will become superseded by better technology from software vendors (no longer necessary to `roll your own') the logic for interpreting this data will always be useful, and Liu's `Performance Maps' are a useful way of interpreting the data.
On the whole I found the book to be a to be a thoughtful overview of area of enterprise performance and scalability tuning that that its many examples lived up to its subtitle of `a Quantitative approach'. It is a happy addition to my library.
Vance Morrison - Performance Architect for the .NET Runtime
Most of the consumer Reviews tell that the "Software Performance and Scalability: A Quantitative Approach (Quantitative Software Engineering Series)" are high quality item. You can read each testimony from consumers to find out cons and pros from Software Performance and Scalability: A Quantitative Approach (Quantitative Software Engineering Series) ...

No comments:
Post a Comment