-
Book Overview & Buying
-
Table Of Contents
Delphi High Performance - Second Edition
By :
To finish this chapter, I’ll return to the now well-known SlowCode example. At the end of Chapter 3, Fixing the Algorithm, we significantly adapted the code and ended with a version that calculates prime numbers with the Sieve of Eratosthenes (SlowCode_Sieve). That version processed 10 million numbers in 1,072 milliseconds. Let’s see if we can improve on that.
The obvious target for optimization is the Reverse function, which creates a result by appending characters one at a time. We saw in this chapter that modifying a string can cause frequent memory allocations:
function Reverse(s: string): string; var ch: char; begin Result := ''; for ch in s do Result := ch + Result; end;
Instead of optimizing this function, let’s look at how it is used. The Filter method uses it to reverse a number – reversed := StrToInt(Reverse(IntToStr(i)));.
This statement brings...