[
https://issues.jboss.org/browse/JGRP-1772?page=com.atlassian.jira.plugin....
]
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