mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Remove DevToolsReactPerfLoggerListener when FabricUIManager is deallocated
Summary: Remove DevToolsReactPerfLoggerListener when FabricUIManager is deallocated changelog: [internal] internal Reviewed By: JoshuaGross Differential Revision: D36500223 fbshipit-source-id: d44e0d07390724191360540e04a51261803eb57c
This commit is contained in:
committed by
Facebook GitHub Bot
parent
40769f2212
commit
ddad5d1265
@@ -109,6 +109,54 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
||||
public static final boolean ENABLE_FABRIC_PERF_LOGS = ENABLE_FABRIC_LOGS || false;
|
||||
public DevToolsReactPerfLogger mDevToolsReactPerfLogger;
|
||||
|
||||
private static final DevToolsReactPerfLogger.DevToolsReactPerfLoggerListener FABRIC_PERF_LOGGER =
|
||||
new DevToolsReactPerfLogger.DevToolsReactPerfLoggerListener() {
|
||||
@Override
|
||||
public void onFabricCommitEnd(DevToolsReactPerfLogger.FabricCommitPoint commitPoint) {
|
||||
long commitDuration = commitPoint.getCommitDuration();
|
||||
long layoutDuration = commitPoint.getLayoutDuration();
|
||||
long diffDuration = commitPoint.getDiffDuration();
|
||||
long transactionEndDuration = commitPoint.getTransactionEndDuration();
|
||||
long batchExecutionDuration = commitPoint.getBatchExecutionDuration();
|
||||
|
||||
DevToolsReactPerfLogger.mStreamingCommitStats.add(commitDuration);
|
||||
DevToolsReactPerfLogger.mStreamingLayoutStats.add(layoutDuration);
|
||||
DevToolsReactPerfLogger.mStreamingDiffStats.add(diffDuration);
|
||||
DevToolsReactPerfLogger.mStreamingTransactionEndStats.add(transactionEndDuration);
|
||||
DevToolsReactPerfLogger.mStreamingBatchExecutionStats.add(batchExecutionDuration);
|
||||
|
||||
FLog.i(
|
||||
TAG,
|
||||
"Statistics of Fabric commit #%d:\n"
|
||||
+ " - Total commit time: %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n"
|
||||
+ " - Layout time: %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n"
|
||||
+ " - Diffing time: %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n"
|
||||
+ " - FinishTransaction (Diffing + JNI serialization): %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n"
|
||||
+ " - Mounting: %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n",
|
||||
commitPoint.getCommitNumber(),
|
||||
commitDuration,
|
||||
DevToolsReactPerfLogger.mStreamingCommitStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingCommitStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingCommitStats.getMax(),
|
||||
layoutDuration,
|
||||
DevToolsReactPerfLogger.mStreamingLayoutStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingLayoutStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingLayoutStats.getMax(),
|
||||
diffDuration,
|
||||
DevToolsReactPerfLogger.mStreamingDiffStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingDiffStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingDiffStats.getMax(),
|
||||
transactionEndDuration,
|
||||
DevToolsReactPerfLogger.mStreamingTransactionEndStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingTransactionEndStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingTransactionEndStats.getMax(),
|
||||
batchExecutionDuration,
|
||||
DevToolsReactPerfLogger.mStreamingBatchExecutionStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingBatchExecutionStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingBatchExecutionStats.getMax());
|
||||
}
|
||||
};
|
||||
|
||||
static {
|
||||
FabricSoLoader.staticInit();
|
||||
}
|
||||
@@ -369,53 +417,8 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
||||
mEventDispatcher.addBatchEventDispatchedListener(mEventBeatManager);
|
||||
if (ENABLE_FABRIC_PERF_LOGS) {
|
||||
mDevToolsReactPerfLogger = new DevToolsReactPerfLogger();
|
||||
mDevToolsReactPerfLogger.addDevToolsReactPerfLoggerListener(
|
||||
new DevToolsReactPerfLogger.DevToolsReactPerfLoggerListener() {
|
||||
@Override
|
||||
public void onFabricCommitEnd(DevToolsReactPerfLogger.FabricCommitPoint commitPoint) {
|
||||
long commitDuration = commitPoint.getCommitDuration();
|
||||
long layoutDuration = commitPoint.getLayoutDuration();
|
||||
long diffDuration = commitPoint.getDiffDuration();
|
||||
long transactionEndDuration = commitPoint.getTransactionEndDuration();
|
||||
long batchExecutionDuration = commitPoint.getBatchExecutionDuration();
|
||||
mDevToolsReactPerfLogger.addDevToolsReactPerfLoggerListener(FABRIC_PERF_LOGGER);
|
||||
|
||||
DevToolsReactPerfLogger.mStreamingCommitStats.add(commitDuration);
|
||||
DevToolsReactPerfLogger.mStreamingLayoutStats.add(layoutDuration);
|
||||
DevToolsReactPerfLogger.mStreamingDiffStats.add(diffDuration);
|
||||
DevToolsReactPerfLogger.mStreamingTransactionEndStats.add(transactionEndDuration);
|
||||
DevToolsReactPerfLogger.mStreamingBatchExecutionStats.add(batchExecutionDuration);
|
||||
|
||||
FLog.i(
|
||||
TAG,
|
||||
"Statistics of Fabric commit #%d:\n"
|
||||
+ " - Total commit time: %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n"
|
||||
+ " - Layout time: %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n"
|
||||
+ " - Diffing time: %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n"
|
||||
+ " - FinishTransaction (Diffing + JNI serialization): %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n"
|
||||
+ " - Mounting: %d ms. Avg: %.2f. Median: %.2f ms. Max: %d ms.\n",
|
||||
commitPoint.getCommitNumber(),
|
||||
commitDuration,
|
||||
DevToolsReactPerfLogger.mStreamingCommitStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingCommitStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingCommitStats.getMax(),
|
||||
layoutDuration,
|
||||
DevToolsReactPerfLogger.mStreamingLayoutStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingLayoutStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingLayoutStats.getMax(),
|
||||
diffDuration,
|
||||
DevToolsReactPerfLogger.mStreamingDiffStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingDiffStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingDiffStats.getMax(),
|
||||
transactionEndDuration,
|
||||
DevToolsReactPerfLogger.mStreamingTransactionEndStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingTransactionEndStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingTransactionEndStats.getMax(),
|
||||
batchExecutionDuration,
|
||||
DevToolsReactPerfLogger.mStreamingBatchExecutionStats.getAverage(),
|
||||
DevToolsReactPerfLogger.mStreamingBatchExecutionStats.getMedian(),
|
||||
DevToolsReactPerfLogger.mStreamingBatchExecutionStats.getMax());
|
||||
}
|
||||
});
|
||||
ReactMarker.addFabricListener(mDevToolsReactPerfLogger);
|
||||
}
|
||||
}
|
||||
@@ -428,6 +431,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
|
||||
FLog.i(TAG, "FabricUIManager.onCatalystInstanceDestroy");
|
||||
|
||||
if (mDevToolsReactPerfLogger != null) {
|
||||
mDevToolsReactPerfLogger.removeDevToolsReactPerfLoggerListener(FABRIC_PERF_LOGGER);
|
||||
ReactMarker.removeFabricListener(mDevToolsReactPerfLogger);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user