Dispose adb logcat connection if there are no listeners
Summary: Flipper used to always subscribe to the adb logs. This change makes the log subscription lazy, which means if there are no plugins listening to the logs, we don't subscribe to the adb logs at all. As you can see in the recording (prod build) this lowers CPU usage significantly: without logs plugin disabled it is now ~5-8 %, with the plugin enabled ~12-18%. Before this change we would never stop listening to the log output, even when the plugins were disabled, causing a constant background noise which people complain regularly about. The pause / resume button in the new log plugin will now cleanup the connection as well, so that a simple 'pause' click will already boost performance, without needing to disable the logs plugin (if crash reporter is not enabled) In this diff we also will clear the logs when reconnected. Previously we didn't reset the logs after connecting, we means Flipper would try to gets up with all past logs first, which could be a few 100 K entries. Further future optimizations could involve using logcat smarter; by actually passing filters on app or loglevel to the command (not sure if that is actually faster, or just a convenience api that does the same filtering as we do) Changelog: Flipper will now use less CPU if logs & crash reporter plugins are disabled by no longer tailing adb logcat. Reviewed By: nikoant Differential Revision: D27047041 fbshipit-source-id: 251a04dcc6f488f220cb56fe50a26788d795e38c
This commit is contained in:
committed by
Facebook GitHub Bot
parent
de92495f04
commit
d293b2b0e5
@@ -582,5 +582,8 @@
|
||||
],
|
||||
"app-microsoft-windows": [
|
||||
24
|
||||
],
|
||||
"box-outline": [
|
||||
24
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user