Perhaps the most frustrating thing about shipping anything less than a blockbuster game is the lack of feedback you get on your work. The very best games of any given year will be scrutinized and evaluated by the community of developers, but everything else is pretty much ignored. I was surprised and pleased therefore, when […]
Posts under ‘Uncategorized’
Symbol Sort : A Utility for Measuring C++ Code Bloat
OVERVIEW SymbolSort is a utility for analyzing code bloat in C++ applications. It works by extracting the symbols from a dump generated by the Microsoft DumpBin utility or by reading a PDB file. It processes the symbols it extracts and generates lists sorted by a number of different criteria. You can read more about the motivation behind SymbolSort […]
Minimizing Code Bloat: Redundant Template Instantiation
This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables. The last item on my list of code bloat causes is redundant template instantiation. Template functions have a lot in common with inline functions. Like inline functions, template functions are instantiated into the object file of every translation unit in […]
Minimizing Code Bloat: Incorrect Inlining
This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables. Earlier I talked about excessive inlining as a common cause of code bloat. Excessive inlining is when code that shouldn’t be inlined is. Today I’m going to look at a related problem, code that is declared as inlined but never […]
Minimizing Code Bloat: Static Allocations
This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables. Static allocations are certainly the simplest and most predictable sources of code bloat. Static allocations refer to data structures in a program for which storage is allocated for the entire duration of the application’s execution. In C++ file, class, […]