You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
5.0 KiB
156 lines
5.0 KiB
/* |
|
* Licensed to the Apache Software Foundation (ASF) under one |
|
* or more contributor license agreements. See the NOTICE file |
|
* distributed with this work for additional information |
|
* regarding copyright ownership. The ASF licenses this file |
|
* to you under the Apache License, Version 2.0 (the |
|
* "License"); you may not use this file except in compliance |
|
* with the License. You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, |
|
* software distributed under the License is distributed on an |
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|
* KIND, either express or implied. See the License for the |
|
* specific language governing permissions and limitations |
|
* under the License. |
|
*/ |
|
|
|
#import <Foundation/Foundation.h> |
|
#import "WXSDKInstance.h" |
|
|
|
#define WXTNetworkHanding @"loadJS" |
|
#define WXTExecJS @"execJS" |
|
#define WXTJSCall @"jsCall" |
|
#define WXTDomCall @"domCall" |
|
#define WXTRender @"render" |
|
#define WXTRenderFinish @"renderFinish" |
|
|
|
#define WXTJSBridgeThread @"JSThread" |
|
#define WXTDOMThread @"DOMThread" |
|
#define WXTUIThread @"UIThread" |
|
#define WXTMainThread @"MainThread" |
|
|
|
#define WXTracingBegin @"B" |
|
#define WXTracingEnd @"E" |
|
#define WXTracingDuration @"D" |
|
#define WXTracingInstant @"i" |
|
|
|
#define WXTracingDurationDefault 0 |
|
|
|
typedef enum : NSUInteger { |
|
// global |
|
WXTracingNetworkHanding = 0, |
|
WXTracingDataHanding, |
|
WXTracingRender |
|
} WXTracingTag; |
|
|
|
|
|
@interface WXTracingApi:NSObject |
|
|
|
@property (nonatomic, copy) NSString *name; // |
|
@property (nonatomic, copy) NSString *className; // |
|
@property (nonatomic, copy) NSString *method; // |
|
|
|
@end |
|
|
|
@interface WXTracing:NSObject |
|
|
|
@property (nonatomic, copy) NSString *ref; // compnonet id |
|
@property (nonatomic, copy) NSString *parentRef; // compnonet id |
|
@property (nonatomic, copy) NSString *className; // compnonet class name or module class name |
|
@property (nonatomic, copy) NSString *name; // register name |
|
@property (nonatomic, copy) NSString *ph; // phase |
|
@property (nonatomic) NSTimeInterval ts; // time |
|
@property (nonatomic) long long traceId; |
|
@property (nonatomic) NSTimeInterval duration; |
|
@property (nonatomic, copy) NSString *fName; // functionName |
|
@property (nonatomic, copy) NSString *iid; // instance id |
|
@property (nonatomic) long long parentId;// parent event id |
|
@property (nonatomic, copy) NSString *bundleUrl; |
|
@property (nonatomic, copy) NSString *threadName; |
|
@property (nonatomic, strong) NSMutableArray *childrenRefs; // children ids |
|
-(NSDictionary *)dictionary; |
|
@end |
|
|
|
@interface WXTracingTask:NSObject |
|
|
|
@property (nonatomic, copy) NSString *iid; |
|
@property (nonatomic) long long counter; |
|
@property (nonatomic, copy) NSString *tag; |
|
@property (nonatomic, copy) NSString *bundleUrl; |
|
@property (nonatomic, strong) NSMutableArray *tracings; |
|
@property (nonatomic, copy) NSString *bundleJSType; // |
|
|
|
@end |
|
|
|
@interface WXTracingManager : NSObject |
|
|
|
/** |
|
* @discusstion weex perfermance tracing state |
|
* @return isTracing , NO in the release environment. |
|
*/ |
|
+(BOOL)isTracing; |
|
/** |
|
* @discusstion set weex perfermance tracing state , you should use in debug environment |
|
* @param isTracing YES weex will be traced, NO weex will not be traced . |
|
*/ |
|
+(void)switchTracing:(BOOL)isTracing; |
|
/** |
|
* @discusstion weex perfermance tracing state |
|
* @param iid the instance id. |
|
* @param ref the component ref |
|
* @param className the module or component class name |
|
* @param name the module or component name |
|
* @param phase the trace phase |
|
* @param functionName function name |
|
* @param options the optional refer:support ts,duration,parentRef |
|
*/ |
|
+(void)startTracingWithInstanceId:(NSString *)iid ref:(NSString*)ref className:(NSString *)className name:(NSString *)name phase:(NSString *)phase functionName:(NSString *)functionName options:(NSDictionary *)options; |
|
/** |
|
* @discusstion fetch tracing data |
|
* @return the tracing data |
|
*/ |
|
+(NSMutableDictionary*)getTracingData; |
|
|
|
/** |
|
* @discusstion clear tracing data |
|
*/ |
|
+(void)clearTracingData; |
|
|
|
/** |
|
* @discusstion get current time |
|
*/ |
|
+(NSTimeInterval)getCurrentTime; |
|
|
|
/** |
|
* @discusstion set bundle type |
|
* @param jsBundleString the bundle source. |
|
* @param iid the instance id. |
|
*/ |
|
+(void)setBundleJSType:(NSString *)jsBundleString instanceId:(NSString *)iid; |
|
/** |
|
* @discusstion fetch the weex moudle component handler info |
|
* @return the weex moudle component handler info |
|
*/ |
|
+(NSDictionary *)getTacingApi; |
|
|
|
/** |
|
* @discusstion commit tracing info |
|
* @param instanceId the instance id. |
|
*/ |
|
+(void )commitTracing:(NSString *)instanceId; |
|
|
|
/** |
|
* @discusstion commit summary info |
|
* @param instanceId the instance id. |
|
*/ |
|
+ (void)commitTracingSummaryInfo:(NSDictionary *)info withInstanceId:(NSString *)instanceId; |
|
|
|
/** |
|
* @discusstion destroy Traincg Task by Instance |
|
* @param instanceId the instanceId. |
|
*/ |
|
+(void)destroyTraincgTaskWithInstance:(NSString *)instanceId; |
|
@end
|
|
|