[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freedesktop-dbus
Subject:    About performance of D-Bus
From:       "Jerome Philbert" <jerome.philbert () gmail ! com>
Date:       2008-10-21 9:36:26
Message-ID: 9c0d19af0810210236t552d47d8tc6eb0aae5d85a6ac () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi,

I've done some D-Bus benchmarks, as done here
http://lists.freedesktop.org/archives/dbus/2007-October/008829.html
I'm also interested in a quick D-Bus for an embedded solution based on
ARM9@200MHz.

I use dbus-1.2.3 and built it to be the quickest as below:
 - without paranoid validation (mode =
DBUS_VALIDATION_MODE_WE_TRUST_THIS_DATA_ABSOLUTELY)
 - with these options: ./configure --prefix=/usr --host=arm-linux
--with-xml=expat --without-x --disable-tests --disable-verbose-mode
--disable-asserts --disable-checks

I've written a simple test program where the client calls a synchronous
method (with D-Bus GLib bindings) with 3 integer input arguments and 3
integer output arguments. I measure the method call duration as described
below:

client side:
  gettimeofday()
  dbus_g_proxy_call (proxy, "MyMethod", error, G_TYPE_INT, IN_arg0,
G_TYPE_INT, IN_arg1, G_TYPE_INT, IN_arg2, G_TYPE_INVALID, G_TYPE_INT,
OUT_arg3, G_TYPE_INT, OUT_arg4, G_TYPE_INT, OUT_arg5, G_TYPE_INVALID)

server side:
  gboolean test_object_my_method (TestObject *obj, gint a, gint b, gint c,
gint *r1, gint *r2, gint *r3, GError **error)
  {
    gettimeofday()
  }

Result: the method call duration lasts about 4700us on ARM9@200MHz.
This number is an average of 1000 measures and is quite constant.

I have also measured with asynchronous method and I get same numbers.

Are these numbers normal ?
Why is D-Bus so slow ?
Is it possible to improve it ?

[Attachment #5 (text/html)]

Hi,<br><br>I&#39;ve done some D-Bus benchmarks, as done here <a \
href="http://lists.freedesktop.org/archives/dbus/2007-October/008829.html">http://lists.freedesktop.org/archives/dbus/2007-October/008829.html</a><br>I&#39;m \
also interested in a quick D-Bus for an embedded solution based on ARM9@200MHz.<br> \
<br>I use dbus-1.2.3 and built it to be the quickest as below:<br>&nbsp;- without \
paranoid validation (mode = \
DBUS_VALIDATION_MODE_WE_TRUST_THIS_DATA_ABSOLUTELY)<br>&nbsp;- with these options: \
./configure --prefix=/usr --host=arm-linux --with-xml=expat --without-x \
--disable-tests --disable-verbose-mode --disable-asserts --disable-checks<br> \
<br>I&#39;ve written a simple test program where the client calls a synchronous \
method (with D-Bus GLib bindings) with 3 integer input arguments and 3 integer output \
arguments. I measure the method call duration as described below:<br> <br>client \
side:<br>&nbsp; gettimeofday()<br>&nbsp; dbus_g_proxy_call (proxy, \
&quot;MyMethod&quot;, error, G_TYPE_INT, IN_arg0, G_TYPE_INT, IN_arg1, G_TYPE_INT, \
IN_arg2, G_TYPE_INVALID, G_TYPE_INT, OUT_arg3, G_TYPE_INT, OUT_arg4, G_TYPE_INT, \
OUT_arg5, G_TYPE_INVALID)<br> <br>server side:<br>&nbsp; gboolean \
test_object_my_method (TestObject *obj, gint a, gint b, gint c, gint *r1, gint *r2, \
gint *r3, GError **error)<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; gettimeofday()<br>&nbsp; \
}<br><br>Result: the method call duration lasts about 4700us on ARM9@200MHz.<br> This \
number is an average of 1000 measures and is quite constant.<br><br>I have also \
measured with asynchronous method and I get same numbers.<br><br>Are these numbers \
normal ?<br>Why is D-Bus so slow ?<br>Is it possible to improve it ?<br>



_______________________________________________
dbus mailing list
dbus@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dbus


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic