<br><br><div class="gmail_quote">On Mon, Dec 19, 2011 at 3:57 PM, Michael Meeks <span dir="ltr">&lt;<a href="mailto:michael.meeks@suse.com" target="_blank">michael.meeks@suse.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi Rafael,<br>
<div><br>
On Mon, 2011-12-19 at 13:03 -0430, Rafael Dominguez wrote:<br>
&gt; Just some cleanup of tools/rtti.hxx macros for c++ RTTI.<br>
<br>
</div>        Gosh :-) you are brave. I suppose there is some residual performance<br>
concern about this sort of thing; then again I think that many of our<br>
SfxItemSet items are rather shallowly inherited - just a couple of jumps<br>
to SfxFooItem etc. - so perhaps it won&#39;t be so bad. The SfxItemSet<br>
grab-bag is used in some pretty inner of inner loops JFYI so ... lets<br>
see.<br></blockquote><div><br>Well yeah theres a penalty for using dynamic_cast but dunno how much will affect performance since theres alot of calls, but im pretty sure some code can be refactored to avoid casting. <br>
</div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><br>
&gt;  Theres a bunch of patchs but they are very straightfoward.<br>
&gt; In the future can i push the patch myself or should i continue sending<br>
&gt; them to the ml for review??<br>
<br>
</div>        If we&#39;re resolved to do this thing; which - I suspect we should, then -<br>
if you are 100% confident, then I&#39;m not sure these would need review. I<br>
wonder if there is an easy way (by leaving the existing macros in-place<br>
but changing their impl. to use dynamic_cast) whether we could do some<br>
profiling of: medium sized word document (with diverse styles &amp;<br>
formatting) load, same for medium sized spreadsheet, and large PPT -<br>
before and after. [ the best way to do that is to run before &amp; after in<br>
callgrind the way to do that is:<br>
<br></blockquote><div><br>Well probably we can change the implementation of the PTR_CAST, HAS_BASE and IS_TYPE macros, but for the other ones<br>we cant. i will see if i can get some benchmarks.<br> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

export OOO_EXIT_POST_STARTUP=1<br>
export OOO_DISABLE_RECOVERY=1<br>
valgrind --tool=callgrind --simulate-cache=yes --dump-instr=yes ./soffice.bin -writer --splash-pipe=0 &lt;test-file.ods&gt;<br>
<br>
        You can then leave it un-attended &amp; get a nice number out.<br>
<br>
        Beyond the malingering performance concern, I&#39;m all for this :-)<br>
<br>
        As a minor nit:<br>
<br>
            // Check type since it is destroyed when the type is deleted<br>
            if(GetStyleSheet() &amp;&amp; HAS_BASE(SfxStyleSheet, mpStyleSheet))<br>
<br>
        If indeed we don&#39;t need to check the type, we should prolly drop the<br>
comment as well [ did you look at the commit that added those comments<br>
in the history ? with git annotate - perhaps there is something<br>
interesting there ].<br>
<br></blockquote><div><br>No i didnt look at the code history, i saw alot of stuff that could possibly can get improved but didnt want to change lots of code, you know how fragile is the codebase. The most usage of the RTTI is for ui, views and shell classes.<br>
 <br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
        Anyhow - great to have you cleaning this up.<br>
<br>
        ATB,<br>
<br>
                Michael.<br>
<span><font color="#888888"><br>
--<br>
<a href="mailto:michael.meeks@suse.com" target="_blank">michael.meeks@suse.com</a>  &lt;&gt;&lt;, Pseudo Engineer, itinerant idiot<br> 
</font></span><br></blockquote></div>