
Eric Niebler wrote:
Added to the Wiki:
Steven Watanabe's template profiler is checked into the Boost sandbox and can be checked out here: https://svn.boost.org/svn/boost/sandbox/tools/profile_templates. It is also in the Boost Vault and can be downloaded from here: http://www.boostpro.com/vault/index.php?action=downloadfile&filename=profile_templates.zip&directory=Tools&
Also added to the wiki are the result of a template profile run over miniphoenix.cpp. The results should interest Aleksey: Total instantiations: 2983 Location count cum. ----------------------------------------------------------- C:\boost\org\trunk\boost/mpl/if.hpp(56) 59 59 C:\boost\org\trunk\boost/mpl/if.hpp(44) 48 107 <snip> The top two templates instantiated in this program are mpl::if_ and mpl::if_c, respectively. The sad thing is that most of the instantiations of mpl::if_c are totally unnecessary. mpl::if_ happens to be implemented in terms of mpl::if_c so that any instantiation of mpl::if_ causes an additional instantiation of mpl::if_c. If anything can be done to eliminate this unnecessary instantiation, it'll speed up most template metaprograms across the board. For my part, I always take care in Proto to use mpl::if_c instead of mpl::if_ for just this reason, but other libraries used by Proto don't take this measure. Isn't profiling interesting? -- Eric Niebler BoostPro Computing http://www.boostpro.com