[rdb, fusion, profile_templates] 0.2.03 - compilation speedup

I have uploaded version 0.2.03 to the vault. No new features this time but improvements in compilation speed. The test_odbc project took more than 4.5 minutes to build in debug mode (msvc9, ThinkPad x200s, Intel L9400 with 2 cores @ 1.86 Ghz, 4 Gb RAM) and...17 minutes on a 2Gb RAM computer ! This was becoming unbearable. After a run through profile_templates - thanks to Steven Watanabe for creating this tool ! - I replaced the fusion::maps that were used to gather clause information in sql statement templates with a simpler, less flexible, less orthogonal and less capable version of my own. The result was a 41% speedup (calculated as (old-new)/old) on the 4 Gb computer and 85% on the 2Gb one. The number of template instantiations, as reported by profile_templates, dropped from 86330 to 62771. If someone is interested I can post the complete profiling reports. I plan to focus on datetime support now... Jean-Louis

I have uploaded version 0.2.03 to the vault.
No new features this time but improvements in compilation speed. The test_odbc project took more than 4.5 minutes to build in debug mode (msvc9, ThinkPad x200s, Intel L9400 with 2 cores @ 1.86 Ghz, 4 Gb RAM) and...17 minutes on a 2Gb RAM computer ! This was becoming unbearable.
After a run through profile_templates - thanks to Steven Watanabe for creating this tool ! - I replaced the fusion::maps that were used to gather clause information in sql statement templates with a simpler, less flexible, less orthogonal and less capable version of my own. The result was a 41% speedup (calculated as (old-new)/old) on the 4 Gb computer and 85% on the 2Gb one.
The number of template instantiations, as reported by profile_templates, dropped from 86330 to 62771. If someone is interested I can post the complete profiling reports. Improving fusion compile time is a desirable goal. I think you can
Jean-Louis Leroy wrote: possibly post your profiling options so we can look at fusion problems. -- ___________________________________________ Joel Falcou - Assistant Professor PARALL Team - LRI - Universite Paris Sud XI Tel : (+33)1 69 15 66 35

joel falcou wrote:
Improving fusion compile time is a desirable goal. I think you can possibly post your profiling options so we can look at fusion problems.
I have put the reports here : http://yorel.be/profile_templates_reports/ The number of template instantiations I quoted is for test_insert_static.cpp. You can get the code from the Mercurial repository here : http://code.google.com/p/boost-rdb/source/list The revision with fusion maps is 5787468cae and the other is eb3ae3b6d0 - i.e. just before and just after the merge of teh static_map branch. The latter corresponds to version 0.2.03 in the vault. If you don't have Mercurial I can make a zip of the former. The profile project is in libs/rdb/test/profile-templates/ J-L
participants (2)
-
Jean-Louis Leroy
-
joel falcou