On 11/14/2014 07:49 AM, Noel Grandin wrote:
On 2014-11-13 06:13 PM, Michael Meeks wrote:
* library bloat (Michael S)
+ not really an issue for release builds - --enable-mergelibs
+ big library + --enable-symbols -> OOM
+ especially problematic CppuniTests with use_library_objects
+ perhaps a barrier to entry to new developers
+ Calc: (with debuginfo) 4.1 - 413Mb, 4.3 - 512Mb, master - 600Mb
(stripped) 4.3 - 26.8Mb master - 30Mb
+ linking in parallel gives OOM issues.
=> avoid making libraries even bigger.
+ new calc engine uses lots of templates (Markus)
+ mdds usage is restricted to only a few modules: (Kohei)
+ 5-6 translation units only.
+ whole code-base is using lots more templates (Markus)
+ compilation speed also got more than 2x slower (Kohei)
+ use of own templates & container -> STL
+ recently turned a lot of methods to inline methods
left/right (Kohei)
Some suggestions:
(1) Would it make a difference if I went through the *.hxx files,
marking the inline methods with an explicit inline qualifier?
Yes, it would needlessly clutter the code. ;) I don't see what benefit
you're trying to achieve here?
(2) Perhaps we need to be using the extern template feature to limit the
number of instantiations of various templates?
Template instantiations, via the typical "all-inline" nature of the
template declarations, have hidden visibility and should end up with one
copy per dynamic object. I'm not sure whether there would be much
compile- or run-time benefit from using another strategy (plus, I'm not
sure whether it would work well across the various toolchains to give
template instantiations non-hidden visibility).
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.