Kurt Guntheroth,是一位有超过35年经验的软件开发人员,其中25年的时间被他用来编写大量C++代码。他在Windows、Linux和嵌入式设备上开发。kurt住在华盛顿州西雅图市。
【目录】
Preface 1. An Overview of Optimization Optimization Is Part of Software Development Optimization Is Effective It's OK to Optimize A Nanosecond Here, a Nanosecond There Summary of Strategies for Optimizing C++ Code Use a Better Compiler, Use Your Compiler Better Use Better Algorithms Use Better Libraries Reduce Memory Allocation and Copying Remove Computation Use Better Data Structures Increase Concurrency Optimize Memory Management Summary
2. Computer Behavior Affecting Optimization Lies C++ Believes About Computers The Truth About Computers Memory Is Slow Memory Is Not Accessed in Bytes Some Memory Accesses Are Slower than Others Memory Words Have a Big End and a Little End Memory Has Finite Capacity Instruction Execution Is Slow Making Decisions Is Hard for Computers There Are Multiple Streams of Program Execution Calling into the Operating System Is Expensive C++ Tells Lies Too All Statements Are Not Equally Expensive Statements Are Not Executed in Order Summary
3. Measure Performance The Optimizing Mindset Performance Must Be Measured Optimizers Are Big Game Hunters The 90/10 Rule Amdahl's Law Perform Experiments Keep a Lab Notebook Measure Baseline Performance and Set Goals You Can Improve Only What You Measure Profile Program Execution Time Long-Running Code '~ Little Learning" About Measuring Time Measuring Time with Computers Overcoming Measurement Obstacles Create a Stopwatch Class Time Hot Functions in a Test Harness Estimate Code Cost to Find Hot Code Estimate the Cost of Individual C++ Statements Estimate the Cost of Loops Other Ways to Find Hot Spots Summary
4. Optimize String Use: A Case Study Why Strings Are a Problem Strings Are Dynamically Allocated Strings Are Values Strings Do a Lot of Copying First Attempt at Optimizing Strings Use Mutating String Operations to Eliminate Temporaries Reduce Reallocation by Reserving Storage Eliminate Copying of String Arguments Eliminate Pointer Dereference Using Iterators Eliminate Copying of Returned String Values Use Character Arrays Instead of Strings ……
5. Optimize Algorithms 6. Optimize Dynamically Allocated Variables 7. Optimize Hot Statements 8. Use Better Libraries 9. Optimize Searching and Sorting 10. Optimize Data Structures 11. Optimize I/0 12. Optimize Concurrency 13. Optimize Memory Management
以下为对购买帮助不大的评价