Track native modules which use the main thread for initialization or gathering constants
Reviewed By: majak Differential Revision: D3054146 fb-gh-sync-id: fd4f4c0dff3144d22357ea798d3131aee578d509 shipit-source-id: fd4f4c0dff3144d22357ea798d3131aee578d509
This commit is contained in:
parent
c1762c7bdb
commit
26d9417f2b
|
@ -364,6 +364,7 @@ RCT_EXTERN NSArray<Class> *RCTGetModuleClasses(void);
|
||||||
|
|
||||||
// Set up modules that require main thread init or constants export
|
// Set up modules that require main thread init or constants export
|
||||||
RCTPerformanceLoggerSet(RCTPLNativeModuleMainThread, 0);
|
RCTPerformanceLoggerSet(RCTPLNativeModuleMainThread, 0);
|
||||||
|
NSUInteger modulesOnMainThreadCount = 0;
|
||||||
for (RCTModuleData *moduleData in _moduleDataByID) {
|
for (RCTModuleData *moduleData in _moduleDataByID) {
|
||||||
__weak RCTBatchedBridge *weakSelf = self;
|
__weak RCTBatchedBridge *weakSelf = self;
|
||||||
if (moduleData.requiresMainThreadSetup) {
|
if (moduleData.requiresMainThreadSetup) {
|
||||||
|
@ -380,6 +381,7 @@ RCT_EXTERN NSArray<Class> *RCTGetModuleClasses(void);
|
||||||
RCTPerformanceLoggerAppendEnd(RCTPLNativeModuleMainThread);
|
RCTPerformanceLoggerAppendEnd(RCTPLNativeModuleMainThread);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
modulesOnMainThreadCount++;
|
||||||
} else if (moduleData.hasConstantsToExport) {
|
} else if (moduleData.hasConstantsToExport) {
|
||||||
// Constants must be exported on the main thread, but module setup can
|
// Constants must be exported on the main thread, but module setup can
|
||||||
// be done on any queue
|
// be done on any queue
|
||||||
|
@ -391,10 +393,12 @@ RCT_EXTERN NSArray<Class> *RCTGetModuleClasses(void);
|
||||||
RCTPerformanceLoggerAppendEnd(RCTPLNativeModuleMainThread);
|
RCTPerformanceLoggerAppendEnd(RCTPLNativeModuleMainThread);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
modulesOnMainThreadCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RCTPerformanceLoggerEnd(RCTPLNativeModuleInit);
|
RCTPerformanceLoggerEnd(RCTPLNativeModuleInit);
|
||||||
|
RCTPerformanceLoggerSet(RCTPLNativeModuleMainThreadUsesCount, modulesOnMainThreadCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setUpExecutor
|
- (void)setUpExecutor
|
||||||
|
|
|
@ -18,6 +18,7 @@ typedef NS_ENUM(NSUInteger, RCTPLTag) {
|
||||||
RCTPLNativeModuleMainThread,
|
RCTPLNativeModuleMainThread,
|
||||||
RCTPLNativeModulePrepareConfig,
|
RCTPLNativeModulePrepareConfig,
|
||||||
RCTPLNativeModuleInjectConfig,
|
RCTPLNativeModuleInjectConfig,
|
||||||
|
RCTPLNativeModuleMainThreadUsesCount,
|
||||||
RCTPLJSCExecutorSetup,
|
RCTPLJSCExecutorSetup,
|
||||||
RCTPLTTI,
|
RCTPLTTI,
|
||||||
RCTPLBundleSize,
|
RCTPLBundleSize,
|
||||||
|
|
|
@ -78,6 +78,8 @@ NSArray<NSNumber *> *RCTPerformanceLoggerOutput(void)
|
||||||
@(RCTPLData[RCTPLNativeModulePrepareConfig][1]),
|
@(RCTPLData[RCTPLNativeModulePrepareConfig][1]),
|
||||||
@(RCTPLData[RCTPLNativeModuleInjectConfig][0]),
|
@(RCTPLData[RCTPLNativeModuleInjectConfig][0]),
|
||||||
@(RCTPLData[RCTPLNativeModuleInjectConfig][1]),
|
@(RCTPLData[RCTPLNativeModuleInjectConfig][1]),
|
||||||
|
@(RCTPLData[RCTPLNativeModuleMainThreadUsesCount][0]),
|
||||||
|
@(RCTPLData[RCTPLNativeModuleMainThreadUsesCount][1]),
|
||||||
@(RCTPLData[RCTPLJSCExecutorSetup][0]),
|
@(RCTPLData[RCTPLJSCExecutorSetup][0]),
|
||||||
@(RCTPLData[RCTPLJSCExecutorSetup][1]),
|
@(RCTPLData[RCTPLJSCExecutorSetup][1]),
|
||||||
@(RCTPLData[RCTPLTTI][0]),
|
@(RCTPLData[RCTPLTTI][0]),
|
||||||
|
|
Loading…
Reference in New Issue