Nikolay Izhikov created IGNITE-29089:
----------------------------------------
Summary: Get rid of useless byte array creation during ThinClient
marshalling
Key: IGNITE-29089
URL: https://issues.apache.org/jira/browse/IGNITE-29089
Project: Ignite
Issue Type: Improvement
Reporter: Nikolay Izhikov
Assignee: Nikolay Izhikov
Currently, useless byte array creation happens during each marshalling.
```
ClientUtils {
....
/** Write Ignite binary object to output stream. */
void writeObject(BinaryOutputStream out, Object obj) {
out.writeByteArray(marsh.marshal(obj));
}
}
```
This call routes to
```
GridBinaryMarshaller {
public byte[] marshal(@Nullable Object obj, boolean failIfUnregistered)
throws BinaryObjectException {
if (obj == null)
return new byte[] \{ NULL };
try (BinaryWriterEx writer = BinaryUtils.binariesFactory.writer(ctx,
failIfUnregistered)) {
writer.marshal(obj);
return writer.out().arrayCopy();
}
}
```
which create arrayCopy and writes it to BinaryOutputStream right away.
We can simplify this and improve memory allocation here.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)