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)

Reply via email to