Check if tracing is on before generating strings

Guard Trace.beginSection to avoid unnecessary StringBuilder usage, which
would result in GC garbage churn.

Also, convert sections to instants when that is more applicable. This
also guards against potential run-time crashes if the trace section
string is longer than 127 characters.

Finally, correct some tracing usage in try blocks.

Test: manual
Bug: 257075630
Change-Id: Ibe6f194c779256615a7887931256324f7c78811a
This commit is contained in:
Peter Kalauskas
2022-11-02 15:11:14 -07:00
parent 3aac107972
commit 507bd03403
5 changed files with 60 additions and 21 deletions

View File

@@ -291,8 +291,10 @@ public class KeyButtonRipple extends Drawable {
}
private void endAnimations(String reason, boolean cancel) {
Trace.beginSection("KeyButtonRipple.endAnim: reason=" + reason + " cancel=" + cancel);
Trace.endSection();
if (Trace.isEnabled()) {
Trace.instant(Trace.TRACE_TAG_APP,
"KeyButtonRipple.endAnim: reason=" + reason + " cancel=" + cancel);
}
mVisible = false;
mTmpArray.addAll(mRunningAnimations);
int size = mTmpArray.size();
@@ -502,20 +504,23 @@ public class KeyButtonRipple extends Drawable {
@Override
public void onAnimationStart(Animator animation) {
Trace.beginSection("KeyButtonRipple.start." + mName);
Trace.endSection();
if (Trace.isEnabled()) {
Trace.instant(Trace.TRACE_TAG_APP, "KeyButtonRipple.start." + mName);
}
}
@Override
public void onAnimationCancel(Animator animation) {
Trace.beginSection("KeyButtonRipple.cancel." + mName);
Trace.endSection();
if (Trace.isEnabled()) {
Trace.instant(Trace.TRACE_TAG_APP, "KeyButtonRipple.cancel." + mName);
}
}
@Override
public void onAnimationEnd(Animator animation) {
Trace.beginSection("KeyButtonRipple.end." + mName);
Trace.endSection();
if (Trace.isEnabled()) {
Trace.instant(Trace.TRACE_TAG_APP, "KeyButtonRipple.end." + mName);
}
}
}

View File

@@ -278,7 +278,11 @@ public class SystemUIApplication extends Application implements
}
private static void notifyBootCompleted(CoreStartable coreStartable) {
Trace.beginSection(coreStartable.getClass().getSimpleName() + ".onBootCompleted()");
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP,
coreStartable.getClass().getSimpleName() + ".onBootCompleted()");
}
coreStartable.onBootCompleted();
Trace.endSection();
}
@@ -300,14 +304,18 @@ public class SystemUIApplication extends Application implements
private static CoreStartable startAdditionalStartable(String clsName) {
CoreStartable startable;
if (DEBUG) Log.d(TAG, "loading: " + clsName);
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP, clsName + ".newInstance()");
}
try {
Trace.beginSection(clsName + ".newInstance()");
startable = (CoreStartable) Class.forName(clsName).newInstance();
Trace.endSection();
} catch (ClassNotFoundException
| IllegalAccessException
| InstantiationException ex) {
throw new RuntimeException(ex);
} finally {
Trace.endSection();
}
return startStartable(startable);
@@ -315,7 +323,10 @@ public class SystemUIApplication extends Application implements
private static CoreStartable startStartable(String clsName, Provider<CoreStartable> provider) {
if (DEBUG) Log.d(TAG, "loading: " + clsName);
Trace.beginSection("Provider<" + clsName + ">.get()");
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP, "Provider<" + clsName + ">.get()");
}
CoreStartable startable = provider.get();
Trace.endSection();
return startStartable(startable);
@@ -323,7 +334,10 @@ public class SystemUIApplication extends Application implements
private static CoreStartable startStartable(CoreStartable startable) {
if (DEBUG) Log.d(TAG, "running: " + startable);
Trace.beginSection(startable.getClass().getSimpleName() + ".start()");
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP, startable.getClass().getSimpleName() + ".start()");
}
startable.start();
Trace.endSection();
@@ -364,15 +378,22 @@ public class SystemUIApplication extends Application implements
public void onConfigurationChanged(Configuration newConfig) {
if (mServicesStarted) {
ConfigurationController configController = mSysUIComponent.getConfigurationController();
Trace.beginSection(
configController.getClass().getSimpleName() + ".onConfigurationChanged()");
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP,
configController.getClass().getSimpleName() + ".onConfigurationChanged()");
}
configController.onConfigurationChanged(newConfig);
Trace.endSection();
int len = mServices.length;
for (int i = 0; i < len; i++) {
if (mServices[i] != null) {
Trace.beginSection(
mServices[i].getClass().getSimpleName() + ".onConfigurationChanged()");
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP,
mServices[i].getClass().getSimpleName()
+ ".onConfigurationChanged()");
}
mServices[i].onConfigurationChanged(newConfig);
Trace.endSection();
}

View File

@@ -127,7 +127,10 @@ open class UserBroadcastDispatcher(
action,
userId,
{
Trace.beginSection("registerReceiver act=$action user=$userId")
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP, "registerReceiver act=$action user=$userId")
}
context.registerReceiverAsUser(
this,
UserHandle.of(userId),
@@ -141,7 +144,11 @@ open class UserBroadcastDispatcher(
},
{
try {
Trace.beginSection("unregisterReceiver act=$action user=$userId")
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP,
"unregisterReceiver act=$action user=$userId")
}
context.unregisterReceiver(this)
Trace.endSection()
logger.logContextReceiverUnregistered(userId, action)

View File

@@ -171,7 +171,10 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
@Override
public void onSensorChanged(SensorEvent event) {
Trace.beginSection("DozeScreenBrightness.onSensorChanged" + event.values[0]);
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP, "DozeScreenBrightness.onSensorChanged" + event.values[0]);
}
try {
if (mRegistered) {
mLastSensorValue = (int) event.values[0];

View File

@@ -118,7 +118,10 @@ public final class DeviceStateRotationLockSettingController
private void updateDeviceState(int state) {
Log.v(TAG, "updateDeviceState [state=" + state + "]");
Trace.beginSection("updateDeviceState [state=" + state + "]");
if (Trace.isEnabled()) {
Trace.traceBegin(
Trace.TRACE_TAG_APP, "updateDeviceState [state=" + state + "]");
}
try {
if (mDeviceState == state) {
return;