mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-28 12:15:37 +08:00
[ReactNative] Add PerformanceLogger to measure TTI
Summary: @public Add PerformanceLogger to keep track of JS download, initial script execution and full TTI. Test Plan: The Native side currently calls `addTimespans` when it's finish initializing with the six values (start and end for the three events), so I just checked it with a `PerformanceLogger.logTimespans()` at the end of the function. ``` 2015-06-18 16:47:19.096 [info][tid:com.facebook.React.JavaScript] "ScriptDownload: 48ms" 2015-06-18 16:47:19.096 [info][tid:com.facebook.React.JavaScript] "ScriptExecution: 106ms" 2015-06-18 16:47:19.096 [info][tid:com.facebook.React.JavaScript] "TTI: 293ms" ```
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#import "RCTKeyCommands.h"
|
||||
#import "RCTLog.h"
|
||||
#import "RCTPerfStats.h"
|
||||
#import "RCTPerformanceLogger.h"
|
||||
#import "RCTProfile.h"
|
||||
#import "RCTRedBox.h"
|
||||
#import "RCTRootView.h"
|
||||
@@ -612,6 +613,8 @@ dispatch_queue_t RCTJSThread;
|
||||
RCTAssertMainThread();
|
||||
|
||||
if ((self = [super init])) {
|
||||
RCTPerformanceLoggerStart(RCTPLTTI);
|
||||
|
||||
_bundleURL = bundleURL;
|
||||
_moduleProvider = block;
|
||||
_launchOptions = [launchOptions copy];
|
||||
@@ -981,8 +984,10 @@ RCT_INNER_BRIDGE_ONLY(_invokeAndProcessModule:(__unused NSString *)module
|
||||
} else {
|
||||
|
||||
RCTProfileBeginEvent();
|
||||
RCTPerformanceLoggerStart(RCTPLScriptDownload);
|
||||
RCTJavaScriptLoader *loader = [[RCTJavaScriptLoader alloc] initWithBridge:self];
|
||||
[loader loadBundleAtURL:bundleURL onComplete:^(NSError *error, NSString *script) {
|
||||
RCTPerformanceLoggerEnd(RCTPLScriptDownload);
|
||||
RCTProfileEndEvent(@"JavaScript dowload", @"init,download", @[]);
|
||||
|
||||
_loading = NO;
|
||||
|
||||
Reference in New Issue
Block a user