[infinispan-dev] Re: JProfiler snapshots for Infinispan+JBMAR
Bela Ban
bban at redhat.com
Thu May 14 02:38:28 EDT 2009
David M. Lloyd wrote:
> Yes, Galder has such a test. :-) And yes, JBoss Marshalling writes
> booleans as a single byte
Do you encode the value and type into the single byte ? Assuming you
need 1 bit for the value, you have 7 bits left for the type, which
leaves you with ~ 128 types. Is this assumption correct ?
> (or, in the case of boolean[], a single bit).
How ?
> The test won't likely pass fully until Galder reimplements the custom
> marshalling parts as ObjectTable instead of Externalizers. With the
> current Externalizer-based design, it might write:
>
> - This is an externalized object = 1 byte
> - The class of the externalized object is in the class table = 1 byte
> - The class table entry for the externalized class = 1 byte
> - The externalizer object is predefined = 1 byte
> - This is the custom ID of the externalizer object = 1 byte
> - Begin custom object data = 1 byte
> - Custom object data length = 1-4 bytes depending on N
> - This is the custom object data = N bytes
> - End custom data = 1 byte
>
> Giving 8+N to 11+N bytes or more, depending on the mix of objects and
> primitive data in the custom data block, due to the security features
> in Externalizers which are not needed in ISPN. With an object table
> it would write:
>
> - This object is predefined = 1 byte
> - This is the custom ID of the predefined object = 1 byte
> - This is the custom object data = N bytes
This is 3 bytes compared to the 2 currently used, and - as you said
above - I think we can even get down to only 1 byte for a boolean (or
Boolean). I don't want to nitpick, but can't we get JBMAR to marshall a
boolean into 1 byte ? If we send 10 million messages with a boolean,
then the overhead gets quite large !
--
Bela Ban
Lead JGroups / Clustering Team
JBoss - a division of Red Hat
More information about the infinispan-dev
mailing list