diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index 290c3b6048b..6c18ebf5de0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -716,6 +716,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { // When Binding.cpp calls scheduleMountItems during a commit phase, it always calls with // a BatchMountItem. No other sites call into this with a BatchMountItem, and Binding.cpp only // calls scheduleMountItems with a BatchMountItem. + long scheduleMountItemStartTime = SystemClock.uptimeMillis(); boolean isBatchMountItem = mountItem instanceof IntBufferBatchMountItem; boolean shouldSchedule = (isBatchMountItem && ((IntBufferBatchMountItem) mountItem).shouldSchedule()) @@ -731,7 +732,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { mCommitStartTime = commitStartTime; mLayoutTime = layoutEndTime - layoutStartTime; mFinishTransactionCPPTime = finishTransactionEndTime - finishTransactionStartTime; - mFinishTransactionTime = SystemClock.uptimeMillis() - finishTransactionStartTime; + mFinishTransactionTime = scheduleMountItemStartTime - finishTransactionStartTime; mDispatchViewUpdatesTime = SystemClock.uptimeMillis(); } @@ -766,6 +767,23 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { ReactMarker.logFabricMarker( ReactMarkerConstants.FABRIC_LAYOUT_END, null, commitNumber, layoutEndTime); ReactMarker.logFabricMarker(ReactMarkerConstants.FABRIC_COMMIT_END, null, commitNumber); + + if (ENABLE_FABRIC_LOGS) { + FLog.e( + TAG, + "Statistic of Fabric commit #: " + + commitNumber + + "\n - Total commit time: " + + (finishTransactionEndTime - commitStartTime) + + " ms.\n - Layout: " + + mLayoutTime + + " ms.\n - Diffing: " + + (diffEndTime - diffStartTime) + + " ms.\n" + + " - FinishTransaction (Diffing + Processing + Serialization of MountingInstructions): " + + mFinishTransactionCPPTime + + " ms."); + } } }