Merge "Frameworks/base: Compile-time optimize SQLiteConnection"
This commit is contained in:
@@ -91,8 +91,6 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen
|
||||
private static final String[] EMPTY_STRING_ARRAY = new String[0];
|
||||
private static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
|
||||
|
||||
private static final Pattern TRIM_SQL_PATTERN = Pattern.compile("[\\s]*\\n+[\\s]*");
|
||||
|
||||
private final CloseGuard mCloseGuard = CloseGuard.get();
|
||||
|
||||
private final SQLiteConnectionPool mPool;
|
||||
@@ -1203,7 +1201,11 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen
|
||||
}
|
||||
|
||||
private static String trimSqlForDisplay(String sql) {
|
||||
return TRIM_SQL_PATTERN.matcher(sql).replaceAll(" ");
|
||||
// Note: Creating and caching a regular expression is expensive at preload-time
|
||||
// and stops compile-time initialization. This pattern is only used when
|
||||
// dumping the connection, which is a rare (mainly error) case. So:
|
||||
// DO NOT CACHE.
|
||||
return sql.replaceAll("[\\s]*\\n+[\\s]*", " ");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1437,9 +1439,6 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen
|
||||
}
|
||||
|
||||
private static final class Operation {
|
||||
private static final SimpleDateFormat sDateFormat =
|
||||
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
|
||||
|
||||
public long mStartTime;
|
||||
public long mEndTime;
|
||||
public String mKind;
|
||||
@@ -1494,7 +1493,11 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen
|
||||
}
|
||||
|
||||
private String getFormattedStartTime() {
|
||||
return sDateFormat.format(new Date(mStartTime));
|
||||
// Note: SimpleDateFormat is not thread-safe, cannot be compile-time created, and is
|
||||
// relatively expensive to create during preloading. This method is only used
|
||||
// when dumping a connection, which is a rare (mainly error) case. So:
|
||||
// DO NOT CACHE.
|
||||
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date(mStartTime));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user