From 4d4f2dfe09ed2c63b7d92c287634be55dba5f453 Mon Sep 17 00:00:00 2001 From: Chace Liang Date: Tue, 2 Jun 2015 10:30:14 -0700 Subject: [PATCH] Revert "[ReactNative] Track bridge events' flow" --- React/Base/RCTBridge.m | 42 +++++++++++------------------------------ React/Base/RCTDefines.h | 6 ------ React/Base/RCTProfile.h | 18 ------------------ React/Base/RCTProfile.m | 28 --------------------------- 4 files changed, 11 insertions(+), 83 deletions(-) diff --git a/React/Base/RCTBridge.m b/React/Base/RCTBridge.m index 5047c0cd5..f122611cd 100644 --- a/React/Base/RCTBridge.m +++ b/React/Base/RCTBridge.m @@ -1339,11 +1339,8 @@ RCT_INNER_BRIDGE_ONLY(_invokeAndProcessModule:(NSString *)module method:(NSStrin * AnyThread */ - RCTProfileBeginFlowEvent(); - __weak RCTBatchedBridge *weakSelf = self; [_javaScriptExecutor executeBlockOnJavaScriptQueue:^{ - RCTProfileEndFlowEvent(); RCTProfileBeginEvent(); RCTBatchedBridge *strongSelf = weakSelf; @@ -1351,17 +1348,13 @@ RCT_INNER_BRIDGE_ONLY(_invokeAndProcessModule:(NSString *)module method:(NSStrin return; } - - RCT_IF_DEV(NSNumber *callID = _RCTProfileBeginFlowEvent();) id call = @{ - @"js_args": @{ - @"module": module, - @"method": method, - @"args": args, - }, + @"module": module, + @"method": method, + @"args": args, @"context": context ?: @0, - RCT_IF_DEV(@"call_id": callID,) }; + if ([method isEqualToString:@"invokeCallbackAndReturnFlushedQueue"]) { strongSelf->_scheduledCallbacks[args[0]] = call; } else { @@ -1497,10 +1490,8 @@ RCT_INNER_BRIDGE_ONLY(_invokeAndProcessModule:(NSString *)module method:(NSStrin return NO; } - RCTProfileBeginFlowEvent(); __weak RCTBatchedBridge *weakSelf = self; [self dispatchBlock:^{ - RCTProfileEndFlowEvent(); RCTProfileBeginEvent(); RCTBatchedBridge *strongSelf = weakSelf; @@ -1535,41 +1526,30 @@ RCT_INNER_BRIDGE_ONLY(_invokeAndProcessModule:(NSString *)module method:(NSStrin { RCTAssertJSThread(); - NSArray *calls = [_scheduledCallbacks.allObjects arrayByAddingObjectsFromArray:_scheduledCalls]; - NSNumber *currentExecutorID = RCTGetExecutorID(_javaScriptExecutor); - calls = [calls filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSDictionary *call, NSDictionary *bindings) { - return [call[@"context"] isEqualToNumber:currentExecutorID]; - }]]; + RCTProfileImmediateEvent(@"JS Thread Tick", displayLink.timestamp, @"g"); - RCT_IF_DEV( - RCTProfileImmediateEvent(@"JS Thread Tick", displayLink.timestamp, @"g"); - - for (NSDictionary *call in calls) { - _RCTProfileEndFlowEvent(call[@"call_id"]); - } - ) RCTProfileBeginEvent(); RCTFrameUpdate *frameUpdate = [[RCTFrameUpdate alloc] initWithDisplayLink:displayLink]; for (id observer in _frameUpdateObservers) { if (![observer respondsToSelector:@selector(isPaused)] || ![observer isPaused]) { - RCT_IF_DEV(NSString *name = [NSString stringWithFormat:@"[%@ didUpdateFrame:%f]", observer, displayLink.timestamp];) - RCTProfileBeginFlowEvent(); [self dispatchBlock:^{ - RCTProfileEndFlowEvent(); - RCTProfileBeginEvent(); [observer didUpdateFrame:frameUpdate]; - RCTProfileEndEvent(name, @"objc_call,fps", nil); } forModule:RCTModuleIDsByName[RCTBridgeModuleNameForClass([observer class])]]; } } + NSArray *calls = [_scheduledCallbacks.allObjects arrayByAddingObjectsFromArray:_scheduledCalls]; + NSNumber *currentExecutorID = RCTGetExecutorID(_javaScriptExecutor); + calls = [calls filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSDictionary *call, NSDictionary *bindings) { + return [call[@"context"] isEqualToNumber:currentExecutorID]; + }]]; if (calls.count > 0) { _scheduledCalls = [[NSMutableArray alloc] init]; _scheduledCallbacks = [[RCTSparseArray alloc] init]; [self _actuallyInvokeAndProcessModule:@"BatchedBridge" method:@"processBatch" - arguments:@[[calls valueForKey:@"js_args"]] + arguments:@[calls] context:RCTGetExecutorID(_javaScriptExecutor)]; } diff --git a/React/Base/RCTDefines.h b/React/Base/RCTDefines.h index 0d985db8a..71550a30d 100644 --- a/React/Base/RCTDefines.h +++ b/React/Base/RCTDefines.h @@ -42,12 +42,6 @@ #endif #endif -#if RCT_DEV -#define RCT_IF_DEV(...) __VA_ARGS__ -#else -#define RCT_IF_DEV(...) -#endif - /** * By default, only raise an NSAssertion in debug mode * (custom assert functions will still be called). diff --git a/React/Base/RCTProfile.h b/React/Base/RCTProfile.h index f722b0a02..6ac9d1c0f 100644 --- a/React/Base/RCTProfile.h +++ b/React/Base/RCTProfile.h @@ -25,18 +25,6 @@ NSString *const RCTProfileDidEndProfiling; #if RCT_DEV -#define RCTProfileBeginFlowEvent() \ -_Pragma("clang diagnostic push") \ -_Pragma("clang diagnostic ignored \"-Wshadow\"") \ -NSNumber *__rct_profile_flow_id = _RCTProfileBeginFlowEvent(); \ -_Pragma("clang diagnostic pop") - -#define RCTProfileEndFlowEvent() \ -_RCTProfileEndFlowEvent(__rct_profile_flow_id) - -RCT_EXTERN NSNumber *_RCTProfileBeginFlowEvent(void); -RCT_EXTERN void _RCTProfileEndFlowEvent(NSNumber *); - /** * Returns YES if the profiling information is currently being collected */ @@ -103,12 +91,6 @@ RCT_EXTERN void RCTProfileImmediateEvent(NSString *, NSTimeInterval , NSString * #else -#define RCTProfileBeginFlowEvent() -#define _RCTProfileBeginFlowEvent() @0 - -#define RCTProfileEndFlowEvent() -#define _RCTProfileEndFlowEvent() - #define RCTProfileIsProfiling(...) NO #define RCTProfileInit(...) #define RCTProfileEnd(...) @"" diff --git a/React/Base/RCTProfile.m b/React/Base/RCTProfile.m index 09989d1cb..9b7743494 100644 --- a/React/Base/RCTProfile.m +++ b/React/Base/RCTProfile.m @@ -180,32 +180,4 @@ void RCTProfileImmediateEvent(NSString *name, NSTimeInterval timestamp, NSString ); } -NSNumber *_RCTProfileBeginFlowEvent(void) -{ - static NSUInteger flowID = 0; - - CHECK(@0); - RCTProfileAddEvent(RCTProfileTraceEvents, - @"name": @"flow", - @"id": @(++flowID), - @"cat": @"flow", - @"ph": @"s", - @"ts": RCTProfileTimestamp(CACurrentMediaTime()), - ); - - return @(flowID); -} - -void _RCTProfileEndFlowEvent(NSNumber *flowID) -{ - CHECK(); - RCTProfileAddEvent(RCTProfileTraceEvents, - @"name": @"flow", - @"id": flowID, - @"cat": @"flow", - @"ph": @"f", - @"ts": RCTProfileTimestamp(CACurrentMediaTime()), - ); -} - #endif