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.
114 lines
4.1 KiB
114 lines
4.1 KiB
4 years ago
|
/*
|
||
|
* 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 "WXDefine.h"
|
||
|
#import "WXSDKError.h"
|
||
|
|
||
|
@class WXSDKInstance;
|
||
|
|
||
|
typedef enum : NSUInteger {
|
||
|
// global
|
||
|
WXPTInitalize = 0,
|
||
|
WXPTInitalizeSync,
|
||
|
WXPTFrameworkExecute,
|
||
|
// instance
|
||
|
WXPTJSDownload,
|
||
|
WXPTJSCreateInstance,
|
||
|
WXFirstScreenJSFExecuteTime,
|
||
|
WXPTFirstScreenRender,
|
||
|
WXPTAllRender,
|
||
|
WXPTBundleSize,
|
||
|
//new point
|
||
|
//doc see @WXPerformance
|
||
|
WXPTFsCallJsTime,
|
||
|
WXPTFsCallJsNum,
|
||
|
WXPTFsCallNativeTime,
|
||
|
WXPTFsCallNativeNum,
|
||
|
WXPTFsCallEventNum,
|
||
|
WXPTFsReqNetNum,
|
||
|
WXPTCellExceedNum,
|
||
|
WXPTMaxDeepVDom,
|
||
|
WXPTImgWrongSizeNum,
|
||
|
WXPTTimerNum,
|
||
|
WXPTInteractionTime,
|
||
|
WXPTWrongImgSize,
|
||
|
WXPTInteractionAddCount,
|
||
|
WXPTInteractionLimitAddCount,
|
||
|
WXPTComponentCount,
|
||
|
WXPTComponentCreateTime,
|
||
|
WXPNewFSRenderTime,
|
||
|
//end
|
||
|
WXPTEnd
|
||
|
} WXPerformanceTag;
|
||
|
|
||
|
typedef enum : NSUInteger {
|
||
|
WXMTJSFramework,
|
||
|
WXMTJSDownload,
|
||
|
WXMTJSBridge,
|
||
|
WXMTNativeRender,
|
||
|
WXMTJSService,
|
||
|
} WXMonitorTag;
|
||
|
|
||
|
typedef NS_ENUM(NSInteger, CommitState)
|
||
|
{
|
||
|
MonitorCommit,
|
||
|
|
||
|
//just use on Debug mode
|
||
|
DebugAfterRequest,
|
||
|
DebugAfterFSFinish,
|
||
|
DebugAfterExist,
|
||
|
DebugOnRealTime
|
||
|
};
|
||
|
|
||
|
#define WX_MONITOR_SUCCESS_ON_PAGE(tag, pageName) [WXMonitor monitoringPointDidSuccess:tag onPage:pageName];
|
||
|
#define WX_MONITOR_FAIL_ON_PAGE(tag, errorCode, errorMessage, pageName) \
|
||
|
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN \
|
||
|
code:errorCode \
|
||
|
userInfo:@{NSLocalizedDescriptionKey:(errorMessage?:@"No message")}]; \
|
||
|
[WXMonitor monitoringPoint:tag didFailWithError:error onPage:pageName];
|
||
|
|
||
|
#define WX_MONITOR_SUCCESS(tag) WX_MONITOR_SUCCESS_ON_PAGE(tag, nil)
|
||
|
#define WX_MONITOR_FAIL(tag, errorCode, errorMessage) WX_MONITOR_FAIL_ON_PAGE(tag, errorCode, errorMessage, nil)
|
||
|
|
||
|
#define WX_MONITOR_PERF_START(tag) [WXMonitor performancePoint:tag willStartWithInstance:nil];
|
||
|
#define WX_MONITOR_PERF_END(tag) [WXMonitor performancePoint:tag didEndWithInstance:nil];
|
||
|
#define WX_MONITOR_INSTANCE_PERF_START(tag, instance) [WXMonitor performancePoint:tag willStartWithInstance:instance];
|
||
|
#define WX_MONITOR_INSTANCE_PERF_END(tag, instance) [WXMonitor performancePoint:tag didEndWithInstance:instance];
|
||
|
#define WX_MONITOR_PERF_SET(tag, value, instance) [WXMonitor performancePoint:tag didSetValue:value withInstance:instance];
|
||
|
#define WX_MONITOR_INSTANCE_PERF_IS_RECORDED(tag, instance) [WXMonitor performancePoint:tag isRecordedWithInstance:instance]
|
||
|
#define WX_MONITOR_INSTANCE_PERF_COMMIT(instance) [WXMonitor performanceFinish:instance]
|
||
|
|
||
|
//DEPRECATED_ATTRIBUTE
|
||
|
@interface WXMonitor : NSObject
|
||
|
|
||
|
+ (void)performancePoint:(WXPerformanceTag)tag willStartWithInstance:(WXSDKInstance *)instance;
|
||
|
+ (void)performancePoint:(WXPerformanceTag)tag didEndWithInstance:(WXSDKInstance *)instance;
|
||
|
+ (void)performancePoint:(WXPerformanceTag)tag didSetValue:(double)value withInstance:(WXSDKInstance *)instance;
|
||
|
+ (BOOL)performancePoint:(WXPerformanceTag)tag isRecordedWithInstance:(WXSDKInstance *)instance;
|
||
|
+ (void)performanceFinish:(WXSDKInstance *)instance;
|
||
|
|
||
|
+ (void)monitoringPointDidSuccess:(WXMonitorTag)tag onPage:(NSString *)pageName;
|
||
|
+ (void)monitoringPoint:(WXMonitorTag)tag didFailWithError:(NSError *)error onPage:(NSString *)pageName;
|
||
|
|
||
|
+ (void)performanceFinishWithState:(CommitState) state instance:(WXSDKInstance *)instance;
|
||
|
|
||
|
@end
|