> On Feb. 21, 2015, 12:39 a.m., Maxim Khutornenko wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java, 
> > line 199
> > <https://reviews.apache.org/r/31248/diff/1/?file=871335#file871335line199>
> >
> >     Use StringBuilder instead to avoid heap churn.
> 
> Bill Farner wrote:
>     javac is smart enough here
>     
>     
> http://stackoverflow.com/questions/11942368/why-use-stringbuilder-explicitly-if-the-compiler-converts-string-concatenation-t
> 
> Maxim Khutornenko wrote:
>     This is not obvious and may be dependent on particular JVM complier 
> version/options. I'd rather go with an explicit approach than second guess 
> JVM internals.
> 
> Bill Farner wrote:
>     Mind if we wait to observe a problem?  This seems like premature 
> optimization in a relatively infrequent code path, i'd rather favor 
> readabilty.
> 
> Maxim Khutornenko wrote:
>     How do you propose we observe the problem? :) It's all these 
> unaccounted/non-obvious little fragments that may contribute to the churn. 
> Since it logs on every task status update unconditionally, I'd rather 
> eliminate the potential problem than deal with possible consequences.
> 
> Bill Farner wrote:
>     Stepping back, String's javadoc actually documents this behavior [1]
>     
>     > The Java language provides special support for the string concatenation 
> operator ( + ), and for conversion of other objects to strings. String 
> concatenation is implemented through the StringBuilder(or StringBuffer) class 
> and its append method. String conversions are implemented through the method 
> toString, defined by Object and inherited by all classes in Java. For 
> additional information on string concatenation and conversion, see Gosling, 
> Joy, and Steele, The Java Language Specification.
>     
>     [1] http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

This is better. Though specification is still non-assertive about it:
>To increase the performance of repeated string concatenation, a Java compiler 
>**may use** the StringBuffer class or a similar technique to reduce the number 
>of intermediate String objects that are created by evaluation of an expression.

http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.18.1


- Maxim


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31248/#review73351
-----------------------------------------------------------


On Feb. 21, 2015, 1:36 a.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/31248/
> -----------------------------------------------------------
> 
> (Updated Feb. 21, 2015, 1:36 a.m.)
> 
> 
> Review request for Aurora, Joshua Cohen and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-1028
>     https://issues.apache.org/jira/browse/AURORA-1028
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Export stats for source and reason for LOST tasks, and status delivery 
> latency.
> 
> 
> Diffs
> -----
> 
>   src/main/java/org/apache/aurora/scheduler/events/PubsubEvent.java 
> 1d8f0128732756db74576ee669f6a2718fecc105 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 
> ffc30bb548706df7bec9e1502242890e9b5eb942 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 
> 59ad9e65589c421cefb76f265446fa2885e6198c 
>   src/main/java/org/apache/aurora/scheduler/mesos/TaskStatusStats.java 
> PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java 
> d02c6b32841d5d39c5780e7a044079a38729effb 
>   src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java 
> PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/31248/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Bill Farner
> 
>

Reply via email to