[jboss-jira] [JBoss JIRA] (JGRP-1772) Optimize marshalling of strings

Bela Ban (JIRA) issues at jboss.org
Wed Feb 12 03:53:29 EST 2014


    [ https://issues.jboss.org/browse/JGRP-1772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12943793#comment-12943793 ] 

Bela Ban commented on JGRP-1772:
--------------------------------

We could write the length of the string (as a short), followed by {{DataOutputStream.writeBytes()}} for this. This method writes discards the high 8 bits of each char.

Perhaps 2 methods writeString() (using single bytes) and writeString2() (using double bytes) could be provided. The type could be encoded in the length field (a short), using the highest bit (making the max length of a string only 2^15)
                
> Optimize marshalling of strings
> -------------------------------
>
>                 Key: JGRP-1772
>                 URL: https://issues.jboss.org/browse/JGRP-1772
>             Project: JGroups
>          Issue Type: Enhancement
>            Reporter: Bela Ban
>            Assignee: Bela Ban
>             Fix For: 3.5
>
>
> Currently, we use DataOutput.writeUTF() for all sorts of strings. This is implemented inefficiently and potentially uses more than 1 byte per char.
> Add another method writeString() which converts double byte chars to single byte chars so that only ASCII is supported. This can be used by a lot of internal code which never uses chars above 128.
> For external code, such as {{JChannel.connect(String cluster_name)}}, we need to see whether this is ok. Since cluster names are mainly used to differentiate clusters, perhaps it is ok to mangle the names to chars below 128, although this would change cluster names which use multi-byte chars.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list