[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: dynamic_cast performance overhead
From: Sunil <funtoos () yahoo ! com>
Date: 2005-06-02 19:20:07
Message-ID: 20050602192007.34254.qmail () web31708 ! mail ! mud ! yahoo ! com
[Download RAW message or body]
> that is significant, indeed. which certain
> dynamic_cast's are these, and do
> you have patches we could look at?
I discovered this by chance on cygwin. I started out
by compiling qt/kdelibs/base 3.4.0 with self compiled
gcc 3.4.3 and noticed apps crashing all over. It all
pointed to failing dynamic_cast operations, so I
replaced many relevant dynamic_cast occurrences with
static_cast and could get startkde to start the
desktop, kicker, kwin, had working kcontrol modules
and many apps.
Then I decided that I should try cygwin packaged gcc
3.3.3 to see if dynamic_cast works. I compiled
qt/kdelibs/kdebase again with cygwin gcc 3.3.3, all
(well almost) apps worked fine but I noticed that kde
startup was taking MUCH longer. Just the compiler
change and all dynamic_casts in place.
I then took cygwin patches for gcc and applied to gcc
3.4.3 and re-built gcc-3.4.3. I started afresh and
compiled qt/kdelibs/kdebase again with gcc 3.4.3. The
result is all apps work and startkde is as slow as
with gcc-3.3.3. The current build and the 1st build
had one difference: dynamic_casts. And the runtime
difference was huge. This is also experienced by Ralf
with umbrello and he has profiler data to support this
claim.
Its sad that I lost my dynamic cast related changes in
1st setup in this whole process and now I have to redo
this exercise. And this time I will have profiler
data. It will take some time but I want to start a
discussion on use of dynamic_cast in kde source in the
meantime. I will keep posting examples.
Thanks,
-Sunil
__________________________________
Discover Yahoo!
Have fun online with music videos, cool games, IM and more. Check it out!
http://discover.yahoo.com/online.html
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic