As programmers, we need to focus on 2 area,
1, We need to think over the program logic itself, we need to make it as better as it could do, do some optimization, follow the way the course of data structure and algorithm always tolding us.
2, but, on the other hand, we also need to focus on the hardware, all in all, it's them our program running on, it's also as important as the logic itself, we need to remember a fact that it's the hardware which our program running on. That's a conclusion I've get from the lesson of Mr Drepper.
On the course of Mr Drepper, he have been shows us:
a. Cache and Memory.
cache is a important method to improve the performance of our program, the performance might raise 10 times to 100 times if we have a good understand of the cache mechanism and follow some principle when programming.
b. Streaming computing.
by using SSE, SSE2 or other floating ability provided by modern CPU, we can get dozens of performance improvement. It will be more exciting when the GPGPU times coming.
e. Computer Architecture.
It's the hardware our programs relays on. That means, we can not exceed the limitation the hardware have provided to us. But, on the other hand, we can raven as much hardware performance as we could by re-organize our program to adapt the computer architecture and the CPU, the memory, the I/O controller, etc.
The capability probably be waste when our programs have not been optimized, The hardware might just do some useless cycle operations inside.
and, 自己私下里把 Ulrich 称为“榨干机器性能的人”，我的烂英文表达不出来，这些天，他的讲座，不管哪个主题，总会归结到硬件层面，并提供一些想方设法榨干机器性能的编程原则。活脱脱一个葛朗台！