mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add new performance metric in Fabric
Summary: This diff adds a new metric in Fabric to measure time it takes to Fabric finish transaction in CPP Reviewed By: shergin Differential Revision: D14198153 fbshipit-source-id: 987d1db1ae669906192060cc9b9e077901da6787
This commit is contained in:
committed by
Facebook Github Bot
parent
10679a97c3
commit
daccb54353
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -441,15 +441,18 @@ void Binding::schedulerDidFinishTransaction(
|
||||
|
||||
static auto scheduleMountItems =
|
||||
jni::findClassStatic(UIManagerJavaDescriptor)
|
||||
->getMethod<void(JMountItem::javaobject, jlong, jlong, jlong)>(
|
||||
->getMethod<void(JMountItem::javaobject, jlong, jlong, jlong, jlong)>(
|
||||
"scheduleMountItems");
|
||||
|
||||
long finishTransactionEndTime = getTime();
|
||||
|
||||
scheduleMountItems(
|
||||
javaUIManager_,
|
||||
batch.get(),
|
||||
commitStartTime,
|
||||
layoutTime,
|
||||
finishTransactionStartTime);
|
||||
finishTransactionStartTime,
|
||||
finishTransactionEndTime);
|
||||
}
|
||||
|
||||
void Binding::setPixelDensity(float pointScaleFactor) {
|
||||
|
||||
Reference in New Issue
Block a user