Chapter 7. Defining API Profiling Framework
Basic research is what I'm doing when I don't know what I'm doing.
|--Jon von Neumann about Computer, Technology, and Science|
As stated earlier in Chapter 3, the performance and scalability of a software system are determined by many factors. For complicated software systems, diagnosing the dominating performance and scalability factors is not an easy task. It requires software developers and performance professionals to possess both deep and broad knowledge and experience in all areas from hardware, to software, to performance and scalability problem diagnosis using adequate tools.
Diagnosing software performance and scalability defects with a software product could be a lot easier if an API profiling tool is available. API profiling can tell which APIs are slow, and based on that, one can drill down to the root causes. With an API profiling tool, one can save a lot of guess work in figuring out where things are slow.
From this chapter on, I'll focus on API profiling, as I have found out with my own software performance experience that an API profiling tool is necessary for carrying out software performance and scalability analysis at the source code level both effectively and efficiently.
API profiling is about getting a profile of how a software program spends its execution time with each of its APIs during a particular execution path. Based on the profile obtained, one can then track down the APIs that are implemented less efficiently. ...