A good article on modern CPU features/performance optimizations?
After reading an article on virtual memory implications on application performance (and hence design) I once again realize how little I actually know about today's computer architecture. I have but a vague idea of what are caches, pipelines, branch prediction algorithms, how memory buses work, and probably dozens of other artifacts that could greatly improve my program performance if I only knew about them.
For my defense I can say that I alredy knew what VM (virtual memory) was and how it worked, though I'm ashamed that I didn't think of the impl开发者_StackOverflow中文版ications before.
So... can anyone recommend any reading on the subject(s)? I'd vastly prefer online articles that can be read for free - but if you know a good book, don't hesitate to add that too!
P.S. I would also be interested how these lessons affect modern high-level environments like .NET, which is my primary residence.
Just found this PDF by Ulrich Drepper, titled "What Every Programmer Should Know About Memory". Haven't read it, but looks spot on!
Here's something about sse.
Have a look at these guides by Intel and AMD:
- Intel(R) 64 and IA-32 Architectures Optimization Reference Manual (PDF 4.5MB)
- Software Optimization Guide for AMD Family 15h Processors (PDF 1.9MB)
It's more focused on C/C++ however. But many optimizations should work on .NET too.
精彩评论