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

Jason Lowe commented on YARN-6768:
----------------------------------

Had an offline discussion with [~jeagles] and [~daryn], and one item that came 
up during the discussion was whether we could eliminate both the state (and 
thus thread safety issues) _and_ the array copy occurring in StringBuilder by 
doing an algorithm Daryn described like the following (note I have not tested 
this):
{code}
  public static StringBuilder format(StringBuilder sb, long value, int 
minimumDigits) {
    if (value < 0) {
      sb.append('-');
      value = -value;
    }

    int numDigits = 0;
    int tmp = value;
    do {
      ++numDigits;
      tmp /= 10;
    } while (tmp > 0);

    for (int i = minimumDigits - numDigits; i > 0; --i) {
      sb.append('0');
    }

    sb.append(value);
    return sb;
  }
{code}

This has a little bit more computation to compute the number of digits, but it 
avoids both thread-local lookups and temp buffer allocation.

> Improve performance of yarn api record toString and fromString
> --------------------------------------------------------------
>
>                 Key: YARN-6768
>                 URL: https://issues.apache.org/jira/browse/YARN-6768
>             Project: Hadoop YARN
>          Issue Type: Improvement
>            Reporter: Jonathan Eagles
>            Assignee: Jonathan Eagles
>         Attachments: YARN-6768.1.patch, YARN-6768.2.patch, YARN-6768.3.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to