In a head dump review, LogMessageImpl was seen as serveral

top objects when sorted by size.

This change will set a maximum cap on log size to 20 items for
LogMessageImpl on low_ram (go) devices. This change reduces
the memory footprint of com.android.systemui post-boot.

Test: manual
Bug:188842641
- refer to comment #48
- https://b.corp.google.com/issues/188842641#comment48

Change-Id: I0ef72c629241990e5f5ec877aade5af03626d83f
This commit is contained in:
Marc Weiss
2021-11-17 04:14:14 +00:00
parent ee888a9b76
commit 3005152843

View File

@@ -16,6 +16,7 @@
package com.android.systemui.log
import android.app.ActivityManager
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dump.DumpManager
import javax.inject.Inject
@@ -25,9 +26,18 @@ class LogBufferFactory @Inject constructor(
private val dumpManager: DumpManager,
private val logcatEchoTracker: LogcatEchoTracker
) {
/* limit the size of maxPoolSize for low ram (Go) devices */
private fun poolLimit(maxPoolSize_requested: Int): Int {
if (ActivityManager.isLowRamDeviceStatic()) {
return minOf(maxPoolSize_requested, 20) /* low ram max log size*/
} else {
return maxPoolSize_requested
}
}
@JvmOverloads
fun create(name: String, maxPoolSize: Int, flexSize: Int = 10): LogBuffer {
val buffer = LogBuffer(name, maxPoolSize, flexSize, logcatEchoTracker)
val buffer = LogBuffer(name, poolLimit(maxPoolSize), flexSize, logcatEchoTracker)
dumpManager.registerBuffer(name, buffer)
return buffer
}