I came across this presentation while browsing SO some time ago, and it relates performance to specific memory allocation decisions. The author has some interesting diagrams that show how various objects are allocated by a C++ program, and goes on to optimise the program by making some changes in the code. His diagrams make sense in their own context, but I'd like to know more about how to draw my own.
Where can I learn more about how C++ allocates objects in memory? I would like to know how various structures (arrays, pointers, ints, etc...) are placed when I write a program, in detail. Related to this are pre-caching techniques such as _dcbt, which sound interesting as well.