[
https://issues.apache.org/jira/browse/IGNITE-29089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ignite TC Bot updated IGNITE-29089:
-----------------------------------
Release Note: Thin client: Reduced temporary heap allocations when
marshaling request parameters.
> 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
> Priority: Major
> Labels: ise
> Fix For: 2.19
>
> Attachments: screenshot-1.png
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Currently, useless byte array creation happens during each marshalling.
>
> {noformat}
> ClientUtils {
> ....
> /** Write Ignite binary object to output stream. */
> void writeObject(BinaryOutputStream out, Object obj)
> {
> out.writeByteArray(marsh.marshal(obj));
> }
> }
> {noformat}
> This call routes to
> {noformat}
> 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();
> }
> }
> {noformat}
>
> 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)