From: Bjorn Bringert Date: Fri, 19 Mar 2010 11:22:40 +0000 (+0000) Subject: Move String creation outside O(n^2) path in LogManager X-Git-Tag: android-x86-2.2~62 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=e073b0e86ea089a08685202f78fe446cd03b3d49;p=android-x86%2Fdalvik.git Move String creation outside O(n^2) path in LogManager This more than halves the number of Strings and StringBuilders created when constructing a GoogleHttpClient and executing a single HTTP request. Bug http://b/issue?id=2529141 Change-Id: Ia8268fd692b08cf82e4abbffe1459e461e9f7e68 --- diff --git a/libcore/logging/src/main/java/java/util/logging/LogManager.java b/libcore/logging/src/main/java/java/util/logging/LogManager.java index 413efb30c..6cba849d0 100644 --- a/libcore/logging/src/main/java/java/util/logging/LogManager.java +++ b/libcore/logging/src/main/java/java/util/logging/LogManager.java @@ -326,12 +326,13 @@ public class LogManager { // find children // TODO: performance can be improved here? + String nameDot = name + '.'; Collection allLoggers = loggers.values(); for (final Logger child : allLoggers) { Logger oldParent = child.getParent(); if (parent == oldParent && (name.length() == 0 || child.getName().startsWith( - name + '.'))) { + nameDot))) { final Logger thisLogger = logger; AccessController.doPrivileged(new PrivilegedAction() { public Object run() {