[Kde-bindings] playground/bindings/kimono
Richard Dale
rdale at foton.es
Wed Mar 21 10:36:13 UTC 2007
On Tuesday 20 March 2007, Arno Rehn wrote:
> SVN commit 644738 by arnorehn:
>
> * Made instance operators work
OK good this is quite simple to implement. I wasn't sure that checking for
operator methods with one arg was a good way of telling if it was an instance
method, but it seems there aren't really any static ones with one arg and it
does work:
rbqtapi -roperator | grep static |grep -v ','
static const QPoint QGlobalSpace::operator-(const QPoint&)
static const QPointF QGlobalSpace::operator-(const QPointF&)
But when I ran my 'performance test' which consists of starting tutorial t14,
setting the force to 40 and firing a shot while watching the cpu consumption
with top, I noticed it uses quite a bit more with this change. Up to 38% of
cpu from about 22% before. I changed the code to set a boolean to save the
value of the test to avoid doing it twice per method call. Then I tried
duplicating the IsInstanceOperator call so it was tested 5 times and found
that t14 ran with about twice the cpu load as with no calls at all. So it
looks like there is quite a big overhead per method call.
I think it would be quicker and easier to special case these methods on the
C/C++ side. Then we would probably only need to do a string comparison on the
method name, and rearranging the smoke stack is easier there too.
-- Richard
-------------- next part --------------
A non-text attachment was scrubbed...
Name: is_operator.patch
Type: text/x-diff
Size: 1026 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20070321/07274d4d/attachment.bin>
More information about the Kde-bindings
mailing list