
The Art of Writing Efficient Programs
By :

We will have time to learn about each of the performance analysis tools in more detail in the rest of this chapter, but in this section, we will do a quick end-to-end example and analyze the performance of a simple program. This will show you what the typical performance analysis flow looks like and how different tools are used.
There is also a hidden agenda: by the end of this section, you will come to believe that you should never guess about performance.
Any real-world program that you may have to analyze and optimize is likely to be large enough to take many pages in this book, so we will use a simplified example. This program sorts substrings in a very long string: suppose we have a string S
, such as "abcdcba"
(this is not so long; our actual strings will have millions of characters). We can have a substring starting from any character in this string, for example, the substring S0
starts with the offset 0 and, therefore, has...