My article on “Mature Optimization” (Game Developer magazine, Jan 2006, p33), got a mixed reception – which is good. But there were a few points I felt I did not really communicate very well.
The articles was not intended to be a list of clever optimization techniques, rather I was just trying to introduce the notion that some optimizations are best done early in the project. I then gave some examples of optimization (which might or might not be appropriate to your project), and explained why they were “mature”.
The section “profile your inline functions” is a bit out of place, as it’s not a specific optimization, but my thought here was that the time spent in inline functions is often hidden from the profiler. If you take the time to explicitly profile them, then you can catch the problem early. This does not really fit that well with the rest of the article.
In “Process Offline”, this confused some people, as I did not really explain it very well. The optimization here is one of loading time by loading a single large file, rather than a large number of individual files. Problems with this arise in console development in that you really have to be able to load the file “in-place”, i.e. into the memory area the data wants to be. Unless you pre-process the file appropriately, you have to load the single large file into a separate area of memory, and then copy and process the data into other areas. Not so much of a problem on the PC, but can lead to out-of-memory, or fragmentation issues on consoles.