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 c4f21359e14..7c2bbb05080 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -114,6 +114,9 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { private long mCommitStartTime = 0l; private long mLayoutTime = 0l; private long mFinishTransactionTime = 0l; + private int mLastWidthMeasureSpec = 0; + private int mLastHeightMeasureSpec = 0; + private long mFinishTransactionCPPTime = 0l; public FabricUIManager( ReactApplicationContext reactContext, @@ -273,7 +276,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { @Override public void synchronouslyUpdateViewOnUIThread(int reactTag, ReadableMap props) { long time = SystemClock.uptimeMillis(); - scheduleMountItems(updatePropsMountItem(reactTag, props), time, time, time); + scheduleMountItems(updatePropsMountItem(reactTag, props), time, 0, time, time); } /** @@ -286,11 +289,13 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { final MountItem mountItems, long commitStartTime, long layoutTime, - long finishTransactionStartTime) { + long finishTransactionStartTime, + long finishTransactionEndTime) { // TODO T31905686: support multithreading mCommitStartTime = commitStartTime; mLayoutTime = layoutTime; + mFinishTransactionCPPTime = finishTransactionEndTime - finishTransactionStartTime; mFinishTransactionTime = SystemClock.uptimeMillis() - finishTransactionStartTime; mDispatchViewUpdatesTime = SystemClock.uptimeMillis(); synchronized (mMountItemsLock) { @@ -430,6 +435,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { performanceCounters.put("BatchedExecutionTime", mBatchedExecutionTime); performanceCounters.put("NonBatchedExecutionTime", mNonBatchedExecutionTime); performanceCounters.put("FinishFabricTransactionTime", mFinishTransactionTime); + performanceCounters.put("FinishFabricTransactionCPPTime", mFinishTransactionCPPTime); return performanceCounters; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.cpp index 9bb5f12bd58..9825b379df4 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.cpp @@ -441,15 +441,18 @@ void Binding::schedulerDidFinishTransaction( static auto scheduleMountItems = jni::findClassStatic(UIManagerJavaDescriptor) - ->getMethod( + ->getMethod( "scheduleMountItems"); + long finishTransactionEndTime = getTime(); + scheduleMountItems( javaUIManager_, batch.get(), commitStartTime, layoutTime, - finishTransactionStartTime); + finishTransactionStartTime, + finishTransactionEndTime); } void Binding::setPixelDensity(float pointScaleFactor) {