I particularly found the techniques in Chapter 7 useful (OO, What an algorithm).. I pretty much took bits and pieces of your examples, studied them, wrote test applications and benchmarked them...
Also, chapter 2 (Hash/Cache/Crunch) and Chapter 3 (Strips/Bits/ and Sorts)... Our application is very low-level (down to the bit level with our telephone switch) with the telephone switch and UNIX networking and serial port programming...
The application my current employer had me write was a full-blown predictive-dialer (a computer telephony system) and I used C++ as the platform of choice. It is outperforming a commercial system our system has no boundaries in terms of # of ports... We have over 150 telemarketers running on each system... If you'd like some more information about what a predictive dialer is or does, please let me know. It's a huge system though (well over 100,000 lines of C++ code) and supports features from answering machine detection to Digital Voice capture to outbound dialing to certain inbound functions...
You'd really have to see it live to appreciate its features and functions, but it has saved my employer several million dollars (because they did not have to buy a commercial dialer) and it brings in a multiple of that amount in revenue annually. But it's a real-time, event-driven, multiple state-machine, OO application and a lot of your information in your book helped me with other ideas.
All I have to say is I respect you for all of the time you spent putting together your programs (I loaded your disk on my PC and checked out a lot of your code) and testing them out. Hash tables and caches are one of the most intriguing concepts to work on... It's fun!!!
There's not THAT many books on efficient programming in the market place, that's why I snapped up your book when I saw it advertised in a catalog...
Sincerely,
Theron B. Kousek
Sr. Programmer/Analyst
Promark One
Phoenix, AZ
"For a book from Academic Press, the treatment is wonderfully practical, with coverage of numerous business-related programming techniques, including sorting, hashing, compression, and fast random file access for variable-length records. Steve's random-access file example incorporates a genuinely original algorithm called quantum file access, which alone is well worth twice the price of the whole book." PC Techniques, Dec/Jan 1993, p. 77
"Typographic nits aside, Heller has written a very useful book of optimization hints for the software engineer contending with the limits that finite machines place on infinite concepts. It's worth a place on your bookshelf." Computer Language, December 1992, p. 36