The "The Technology of a 3D Engine" series brought up a rather interesting way of looking at memory: Treat RAM as a cache for the storage drive. When data needs to be accessed, RAM is checked first. If the data isn't in RAM, it is fetched from the storage drive and placed in the least accessed spot in RAM. I'm not entirely sure how you would perform this check without causing significant overhead though... The article probably mentioned (or implied) the solution, but I am not familiar enough with memory managers to pick it out.
While reading through the Solid Angle blog (this post in particular) I started wondering if it is possible to have all procedural animation be physics-based. One advantage to this is that it would look smoother with less effort (assuming the physics simulator is working fine), but I can see that you would run into problems. Tile-based movement could become tricky for example, rather than being a very simple way of handling movement. I'll investigate this when I get into the "experience" phase of the research I am doing.
One last thing: I am planning on making use of profiling more than I have in the past. I've tested out the Very Sleepy profiler, but I haven't done any serious optimizing with it. In addition to the profiling software, I will probably use timers to check how fast particular parts of the code are executing. Keeping everything within its own time budget should be interesting.
[size="1"]Reposted from http://invisiblegdev.blogspot.com/