123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- /*
- * 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
|