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:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user