Marshalling/unmarshalling costs

Jim Gettys jg at
Mon May 19 22:12:59 EDT 2008

First step: data to see if there is a problem.

If no problem; stop.

If problem; fix...


DBUS, btw, does not have to be inefficient; the wire protocol is sane
(distinguishing it from Corba, for example).  What Python does on the
way to the wire is a different question.
                  - Jim

On Tue, 2008-05-20 at 10:06 +1200, Martin Langhoff wrote:
> Looking at the datastore code,  I suspect that a good chunk of our
> time is going into unmarshalling/marshalling data that we send over
> D-Bus.
> Has anyone looked at this at all? Any facts to support/dispel what is
> basically a gut-feeling?
> D-Bus is a nice IPC, for sure (yummy syntactic sugarfor ye olde
> socket), but in the bits of code I've looked at, it seems like we are
> using it to pass actual data. Ooops! Marshalling/unmarshalling costs
> in cpu and memory for any sizable data are murder.
> What D-Bus is designed for - with all its transparent
> marshal/unmarshal magic - is sending easy-to-use signals, with perhaps
> a tiny bit of data as payload. But unbound data needs to be dealt with
> via other means - let the D-Bus message point to where the actual data
> is.
> cheers,
> m
Jim Gettys <jg at>
One Laptop Per Child

More information about the Devel mailing list