114 lines
4.1 KiB
Objective-C
114 lines
4.1 KiB
Objective-C
/*
|
|
* 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
|