[jboss-jira] [JBoss JIRA] (JGRP-1772) Optimize marshalling of strings
Bela Ban (JIRA)
issues at jboss.org
Thu Feb 13 06:59:29 EST 2014
[ https://issues.jboss.org/browse/JGRP-1772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12944213#comment-12944213 ]
Bela Ban commented on JGRP-1772:
--------------------------------
When writing a multi-byte string using {{DataOutput.writeUTF()}}, then {{size()}} is incorrect as it is {{str.length() +2}}. However, the {{length()}} method counts the number of characters only, not the number of bytes needed to write the string to the output stream. E.g. if we have a string whose 4 chars are all 2-byte values, then the current method would compute the requires bytes to be 6 (4 bytes + 2 for the length field), but effectively 10 bytes are written with {{writeUTF()}} (4 2-bytes values plus the 2 byte length field).
I added {{Bits.sizeUTF()}} which computes the correct number of bytes. However, since we're getting rid of {{writeUTF()}} anyway, this probably doesn't need to be done, only for cases where we still use {{writeUTF()}}.
> 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