Chapter 2. Software Platform

 

Well, it's a very, very exciting time ... and that's where vision is ...

 
 --Bill Gates

In the simplest sense, software controls what computers do. Since there are an unlimited number of things that computers can do, there are an unlimited number of software programs developed for various kinds of computing tasks. Regardless of the computing tasks, all software programs share some commonalities in how they are created and how they run on computers.

Understanding the performance and scalability of a software system quantitatively requires a good understanding of how a software program is developed inside out. Poorly designed and implemented software will not run fast on fast hardware. Even well-designed software may not perform and scale optimally on fast hardware without going through a full cycle of optimization and tuning for the best possible performance and scalability.

In this chapter, we'll begin with the concept of the software stack, which consists of multiple layers. How each layer performs and scales is critical to the overall performance and scalability of a system as a whole. Then I' 11 elaborate on the concept of application programming interfaces (APIs), which are the building blocks for constructing various software programs. Because of its absolute importance for performance and scalability, multithreading is discussed with the help of a quantitative case study. I'll also categorize different types of software so that we would know our battlefields ...

Get Software Performance and Scalability: A Quantitative Approach now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.