Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.3
-
None
Description
In Solr 3.3, JavaBinCodec.readStr() reads complete string into byte[] and then converts it into String. FastInputStream is already buffered, so this it not necessary and may take a lot of memory if data string is large.
This patch replaces usage of big byte[] with usage of dis.readUnsignedByte() for getting characters directly from stream.
Patch reduces memory usage and may slightly improve performance of reading text data in javabin-codec.
JavaBinCodec.readStr() function already has unit test in TestJavaBinCodec, no additional unit test is required.