mirror of https://github.com/sbt/sbt.git
Merge pull request #232 from diesalbla/recycle_string_builder_storage
ConsoleAppender: reuse/recycle StringBuilder storage
This commit is contained in:
commit
098796cdff
|
|
@ -2,6 +2,7 @@ package sbt.internal.util
|
||||||
|
|
||||||
import sbt.util._
|
import sbt.util._
|
||||||
import java.io.{ PrintStream, PrintWriter }
|
import java.io.{ PrintStream, PrintWriter }
|
||||||
|
import java.lang.StringBuilder
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import java.util.concurrent.atomic.{ AtomicBoolean, AtomicInteger, AtomicReference }
|
import java.util.concurrent.atomic.{ AtomicBoolean, AtomicInteger, AtomicReference }
|
||||||
import org.apache.logging.log4j.{ Level => XLevel }
|
import org.apache.logging.log4j.{ Level => XLevel }
|
||||||
|
|
@ -507,10 +508,10 @@ class ConsoleAppender private[ConsoleAppender] (
|
||||||
message: String
|
message: String
|
||||||
): Unit =
|
): Unit =
|
||||||
out.lockObject.synchronized {
|
out.lockObject.synchronized {
|
||||||
|
val builder: StringBuilder = new StringBuilder(labelColor.length + label.length + messageColor.length + reset.length * 3)
|
||||||
message.linesIterator.foreach { line =>
|
message.linesIterator.foreach { line =>
|
||||||
val builder = new java.lang.StringBuilder(
|
builder.ensureCapacity(labelColor.length + label.length + messageColor.length + line.length + reset.length * 3 + 3)
|
||||||
labelColor.length + label.length + messageColor.length + line.length + reset.length * 3 + 3
|
builder.setLength(0)
|
||||||
)
|
|
||||||
def fmted(a: String, b: String) = builder.append(reset).append(a).append(b).append(reset)
|
def fmted(a: String, b: String) = builder.append(reset).append(a).append(b).append(reset)
|
||||||
builder.append(reset).append('[')
|
builder.append(reset).append('[')
|
||||||
fmted(labelColor, label)
|
fmted(labelColor, label)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue