OSDN Git Service

Move String creation outside O(n^2) path in LogManager
authorBjorn Bringert <bringert@android.com>
Fri, 19 Mar 2010 11:22:40 +0000 (11:22 +0000)
committerBjorn Bringert <bringert@android.com>
Fri, 19 Mar 2010 11:35:37 +0000 (11:35 +0000)
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

libcore/logging/src/main/java/java/util/logging/LogManager.java

index 413efb3..6cba849 100644 (file)
@@ -326,12 +326,13 @@ public class LogManager {
 
         // find children
         // TODO: performance can be improved here?
+        String nameDot = name + '.';
         Collection<Logger> 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<Object>() {
                     public Object run() {