[ 
https://issues.apache.org/jira/browse/IGNITE-13856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17251088#comment-17251088
 ] 

Ignite TC Bot commented on IGNITE-13856:
----------------------------------------

{panel:title=Branch: [pull/8577/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/8577/head] Base: [master] : New Tests 
(1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Basic 1{color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=5794807]]
* {color:#013220}IgniteBasicTestSuite: 
DirectByteBufferStreamImplV2ByteOrderSelfTest.testLinearPerformanceForWriteString
 - PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5794789&buildTypeId=IgniteTests24Java8_RunAll]

> Superlinear performance of DirectByteBufferStreamImplV2.writeMessage(msg, 
> writer)
> ---------------------------------------------------------------------------------
>
>                 Key: IGNITE-13856
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13856
>             Project: Ignite
>          Issue Type: Improvement
>          Components: binary
>    Affects Versions: 2.9
>            Reporter: Ilya Kazakov
>            Assignee: Ilya Kazakov
>            Priority: Major
>         Attachments: LongStringSQL.java
>
>
> {code:java}
> @Override public void writeMessage(Message msg, MessageWriter writer) { 
>     if (msg != null) { 
>         if (buf.hasRemaining()) { 
>             try { 
>                 writer.beforeInnerMessageWrite()
>                 writer.setCurrentWriteClass(msg.getClass()); 
>                 lastFinished = msg.writeTo(buf, writer); 
>             } 
>             finally { 
>                 writer.afterInnerMessageWrite(lastFinished); 
>             }
>         }
>     } 
> }{code}
> It is going to do multiple invocations of msg.writeTo(). If msg is 
> GridH2String, it will to val.getBytes() on every invocation of writeTo(), 
> leading to spiking of CPU and RAM usage.
> We should change this module to make sure that all serialization happens only 
> once.
>  
> Reproducer is attached. If we increase string size in 10 times, then the 
> execution time increases more than 10 times. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to