WXInstanceApm.smali

.class public Lcom/taobao/weex/performance/WXInstanceApm;
.super Ljava/lang/Object;
.source "WXInstanceApm.java"


# static fields
.field public static final KEY_PAGE_ANIM_BACK_NUM:Ljava/lang/String; = "wxAnimationInBackCount"

.field public static final KEY_PAGE_PROPERTIES_BIZ_ID:Ljava/lang/String; = "wxBizID"

.field public static final KEY_PAGE_PROPERTIES_BUBDLE_URL:Ljava/lang/String; = "wxBundleUrl"

.field public static final KEY_PAGE_PROPERTIES_BUNDLE_TYPE:Ljava/lang/String; = "wxBundleType"

.field public static final KEY_PAGE_PROPERTIES_CACHE_INFO:Ljava/lang/String; = "wxZCacheInfo"

.field public static final KEY_PAGE_PROPERTIES_CACHE_TYPE:Ljava/lang/String; = "wxCacheType"

.field public static final KEY_PAGE_PROPERTIES_CONTAINER_NAME:Ljava/lang/String; = "wxContainerName"

.field public static final KEY_PAGE_PROPERTIES_INSTANCE_TYPE:Ljava/lang/String; = "wxInstanceType"

.field public static final KEY_PAGE_PROPERTIES_JSLIB_VERSION:Ljava/lang/String; = "wxJSLibVersion"

.field public static final KEY_PAGE_PROPERTIES_JS_FM_INI:Ljava/lang/String; = "wxJsFrameworkInit"

.field public static final KEY_PAGE_PROPERTIES_PARENT_PAGE:Ljava/lang/String; = "wxParentPage"

.field public static final KEY_PAGE_PROPERTIES_RENDER_TYPE:Ljava/lang/String; = "wxRenderType"

.field public static final KEY_PAGE_PROPERTIES_REQUEST_TYPE:Ljava/lang/String; = "wxRequestType"

.field public static final KEY_PAGE_PROPERTIES_UIKIT_TYPE:Ljava/lang/String; = "wxUIKitType"

.field public static final KEY_PAGE_PROPERTIES_WEEX_VERSION:Ljava/lang/String; = "wxSDKVersion"

.field public static final KEY_PAGE_STAGES_CONTAINER_READY:Ljava/lang/String; = "wxContainerReady"

.field public static final KEY_PAGE_STAGES_CREATE_FINISH:Ljava/lang/String; = "wxJSBundleCreateFinish"

.field public static final KEY_PAGE_STAGES_CUSTOM_PREPROCESS_END:Ljava/lang/String; = "wxCustomPreprocessEnd"

.field public static final KEY_PAGE_STAGES_CUSTOM_PREPROCESS_START:Ljava/lang/String; = "wxCustomPreprocessStart"

.field public static final KEY_PAGE_STAGES_DESTROY:Ljava/lang/String; = "wxDestroy"

.field public static final KEY_PAGE_STAGES_DOWN_BUNDLE_END:Ljava/lang/String; = "wxEndDownLoadBundle"

.field public static final KEY_PAGE_STAGES_DOWN_BUNDLE_START:Ljava/lang/String; = "wxStartDownLoadBundle"

.field public static final KEY_PAGE_STAGES_END_EXCUTE_BUNDLE:Ljava/lang/String; = "wxEndExecuteBundle"

.field public static final KEY_PAGE_STAGES_FIRST_INTERACTION_VIEW:Ljava/lang/String; = "wxFirstInteractionView"

.field public static final KEY_PAGE_STAGES_FSRENDER:Ljava/lang/String; = "wxFsRender"

.field public static final KEY_PAGE_STAGES_INTERACTION:Ljava/lang/String; = "wxInteraction"

.field public static final KEY_PAGE_STAGES_LOAD_BUNDLE_END:Ljava/lang/String; = "wxEndLoadBundle"

.field public static final KEY_PAGE_STAGES_LOAD_BUNDLE_START:Ljava/lang/String; = "wxStartLoadBundle"

.field public static final KEY_PAGE_STAGES_NEW_FSRENDER:Ljava/lang/String; = "wxNewFsRender"

.field public static final KEY_PAGE_STAGES_RENDER_ORGIGIN:Ljava/lang/String; = "wxRenderTimeOrigin"

.field public static final KEY_PAGE_STATS_ACTUAL_DOWNLOAD_TIME:Ljava/lang/String; = "wxActualNetworkTime"

.field public static final KEY_PAGE_STATS_BODY_RATIO:Ljava/lang/String; = "wxBodyRatio"

.field public static final KEY_PAGE_STATS_BUNDLE_SIZE:Ljava/lang/String; = "wxBundleSize"

.field public static final KEY_PAGE_STATS_CELL_DATA_UN_RECYCLE_NUM:Ljava/lang/String; = "wxCellDataUnRecycleCount"

.field public static final KEY_PAGE_STATS_CELL_EXCEED_NUM:Ljava/lang/String; = "wxCellExceedNum"

.field public static final KEY_PAGE_STATS_CELL_UN_RE_USE_NUM:Ljava/lang/String; = "wxCellUnReUseCount"

.field public static final KEY_PAGE_STATS_COMPONENT_CREATE_COST:Ljava/lang/String; = "wxComponentCost"

.field public static final KEY_PAGE_STATS_EMBED_COUNT:Ljava/lang/String; = "wxEmbedCount"

.field public static final KEY_PAGE_STATS_EXECUTE_JS_CALLBACK_COST:Ljava/lang/String; = "wxExecJsCallBack"

.field public static final KEY_PAGE_STATS_FS_CALL_EVENT_NUM:Ljava/lang/String; = "wxFSCallEventTotalNum"

.field public static final KEY_PAGE_STATS_FS_CALL_JS_NUM:Ljava/lang/String; = "wxFSCallJsTotalNum"

.field public static final KEY_PAGE_STATS_FS_CALL_JS_TIME:Ljava/lang/String; = "wxFSCallJsTotalTime"

.field public static final KEY_PAGE_STATS_FS_CALL_NATIVE_NUM:Ljava/lang/String; = "wxFSCallNativeTotalNum"

.field public static final KEY_PAGE_STATS_FS_CALL_NATIVE_TIME:Ljava/lang/String; = "wxFSCallNativeTotalTime"

.field public static final KEY_PAGE_STATS_FS_REQUEST_NUM:Ljava/lang/String; = "wxFSRequestNum"

.field public static final KEY_PAGE_STATS_FS_TIMER_NUM:Ljava/lang/String; = "wxFSTimerCount"

.field public static final KEY_PAGE_STATS_IMG_LOAD_FAIL_NUM:Ljava/lang/String; = "wxImgLoadFailCount"

.field public static final KEY_PAGE_STATS_IMG_LOAD_NUM:Ljava/lang/String; = "wxImgLoadCount"

.field public static final KEY_PAGE_STATS_IMG_LOAD_SUCCESS_NUM:Ljava/lang/String; = "wxImgLoadSuccessCount"

.field public static final KEY_PAGE_STATS_IMG_UN_RECYCLE_NUM:Ljava/lang/String; = "wxImgUnRecycleCount"

.field public static final KEY_PAGE_STATS_I_ALL_VIEW_COUNT:Ljava/lang/String; = "wxInteractionAllViewCount"

.field public static final KEY_PAGE_STATS_I_COMPONENT_CREATE_COUNT:Ljava/lang/String; = "wxInteractionComponentCreateCount"

.field public static final KEY_PAGE_STATS_I_SCREEN_VIEW_COUNT:Ljava/lang/String; = "wxInteractionScreenViewCount"

.field public static final KEY_PAGE_STATS_JSLIB_INIT_TIME:Ljava/lang/String; = "wxJSLibInitTime"

.field public static final KEY_PAGE_STATS_LARGE_IMG_COUNT:Ljava/lang/String; = "wxLargeImgMaxCount"

.field public static final KEY_PAGE_STATS_LAYOUT_TIME:Ljava/lang/String; = "wxLayoutTime"

.field public static final KEY_PAGE_STATS_MAX_COMPONENT_NUM:Ljava/lang/String; = "wxMaxComponentCount"

.field public static final KEY_PAGE_STATS_MAX_DEEP_DOM:Ljava/lang/String; = "wxMaxDeepVDomLayer"

.field public static final KEY_PAGE_STATS_MAX_DEEP_VIEW:Ljava/lang/String; = "wxMaxDeepViewLayer"

.field public static final KEY_PAGE_STATS_NET_FAIL_NUM:Ljava/lang/String; = "wxNetworkRequestFailCount"

.field public static final KEY_PAGE_STATS_NET_NUM:Ljava/lang/String; = "wxNetworkRequestCount"

.field public static final KEY_PAGE_STATS_NET_SUCCESS_NUM:Ljava/lang/String; = "wxNetworkRequestSuccessCount"

.field public static final KEY_PAGE_STATS_SCROLLER_NUM:Ljava/lang/String; = "wxScrollerCount"

.field public static final KEY_PAGE_STATS_VIEW_CREATE_COST:Ljava/lang/String; = "wxViewCost"

.field public static final KEY_PAGE_STATS_WRONG_IMG_SIZE_COUNT:Ljava/lang/String; = "wxWrongImgSizeCount"

.field public static final KEY_PAGE_TIMER_BACK_NUM:Ljava/lang/String; = "wxTimerInBackCount"

.field public static final KEY_PROPERTIES_ERROR_CODE:Ljava/lang/String; = "wxErrorCode"

.field public static final VALUE_BUNDLE_LOAD_LENGTH:Ljava/lang/String; = "wxLoadedLength"

.field public static final VALUE_ERROR_CODE_DEFAULT:Ljava/lang/String; = "0"

.field public static final WEEX_PAGE_TOPIC:Ljava/lang/String; = "weex_page"


# instance fields
.field private apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

.field public componentCreateTime:J

.field private delayCollectDataTask:Ljava/lang/Runnable;

.field public exceptionRecord:Ljava/util/Set;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Set<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field

.field public final extInfo:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;"
        }
    .end annotation
.end field

.field public forceStopRecordInteraction:Z

.field public hasAddView:Z

.field private hasRecordFistInteractionView:Z

.field public hasReportLayerOverDraw:Z

.field private hasSendInteractionToJS:Z

.field public instanceRect:Landroid/graphics/Rect;

.field private interactionComponentCreateTime:J

.field private interactionJsCallBackTime:J

.field private interactionLayoutTime:D

.field private interactionViewCreateTime:J

.field private isFSEnd:Z

.field public volatile isReady:Z

.field private jsPerformanceCallBack:Ljava/lang/Runnable;

.field private mEnd:Z

.field private mHasInit:Z

.field private mHasRecordDetailData:Z

.field private mInstanceId:Ljava/lang/String;

.field private mPropertiesMap:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;"
        }
    .end annotation
.end field

.field private mUIHandler:Landroid/os/Handler;

.field private preUpdateTime:J

.field private recordStatsMap:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Double;",
            ">;"
        }
    .end annotation
.end field

.field public reportPageName:Ljava/lang/String;

.field public final stageMap:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Long;",
            ">;"
        }
    .end annotation
.end field

.field public viewCreateTime:J

.field private wxExecJsCallBackTime:J


# direct methods
.method public constructor <init>(Ljava/lang/String;)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "instanceId"
        }
    .end annotation

    .line 169
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    const/4 v0, 0x0

    .line 138
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mHasInit:Z

    .line 139
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mEnd:Z

    .line 140
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->hasRecordFistInteractionView:Z

    .line 142
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->forceStopRecordInteraction:Z

    .line 145
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->hasReportLayerOverDraw:Z

    .line 149
    new-instance v1, Ljava/util/concurrent/CopyOnWriteArraySet;

    invoke-direct {v1}, Ljava/util/concurrent/CopyOnWriteArraySet;-><init>()V

    iput-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->exceptionRecord:Ljava/util/Set;

    .line 161
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mHasRecordDetailData:Z

    .line 166
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->hasSendInteractionToJS:Z

    const/4 v0, 0x1

    .line 167
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isReady:Z

    .line 251
    new-instance v0, Lcom/taobao/weex/performance/WXInstanceApm$1;

    invoke-direct {v0, p0}, Lcom/taobao/weex/performance/WXInstanceApm$1;-><init>(Lcom/taobao/weex/performance/WXInstanceApm;)V

    iput-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->jsPerformanceCallBack:Ljava/lang/Runnable;

    .line 407
    new-instance v0, Lcom/taobao/weex/performance/WXInstanceApm$2;

    invoke-direct {v0, p0}, Lcom/taobao/weex/performance/WXInstanceApm$2;-><init>(Lcom/taobao/weex/performance/WXInstanceApm;)V

    iput-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->delayCollectDataTask:Ljava/lang/Runnable;

    const-wide/16 v0, 0x0

    .line 509
    iput-wide v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->preUpdateTime:J

    .line 170
    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    .line 171
    new-instance p1, Ljava/util/concurrent/ConcurrentHashMap;

    invoke-direct {p1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V

    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->extInfo:Ljava/util/Map;

    .line 172
    new-instance p1, Ljava/util/concurrent/ConcurrentHashMap;

    invoke-direct {p1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V

    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    .line 173
    new-instance p1, Landroid/os/Handler;

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v0

    invoke-direct {p1, v0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mUIHandler:Landroid/os/Handler;

    .line 174
    new-instance p1, Ljava/util/concurrent/ConcurrentHashMap;

    invoke-direct {p1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V

    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    .line 175
    new-instance p1, Ljava/util/concurrent/ConcurrentHashMap;

    invoke-direct {p1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V

    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mPropertiesMap:Ljava/util/Map;

    .line 176
    invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;

    move-result-object p1

    invoke-virtual {p1}, Lcom/taobao/weex/WXSDKManager;->getApmGenerater()Lcom/taobao/weex/performance/IApmGenerator;

    move-result-object p1

    if-eqz p1, :cond_6a

    const-string/jumbo v0, "weex_page"

    .line 178
    invoke-interface {p1, v0}, Lcom/taobao/weex/performance/IApmGenerator;->generateApmInstance(Ljava/lang/String;)Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    move-result-object p1

    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    :cond_6a
    return-void
.end method

.method private addPropeyFromExtParms(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "fromKey",
            "toKey",
            "extParams"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "Ljava/lang/String;",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;)V"
        }
    .end annotation

    .line 591
    invoke-interface {p3, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    .line 592
    instance-of p3, p1, Ljava/lang/String;

    if-eqz p3, :cond_b

    .line 593
    invoke-virtual {p0, p2, p1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    :cond_b
    return-void
.end method

.method private printLog()V
    .registers 11

    .line 416
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    const-string/jumbo v1, "wxStartDownLoadBundle"

    invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Long;

    .line 417
    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    const-string/jumbo v2, "wxEndDownLoadBundle"

    invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Long;

    .line 418
    iget-object v2, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    const-string/jumbo v3, "wxInteraction"

    invoke-interface {v2, v3}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/Long;

    .line 419
    iget-object v3, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    const-string/jumbo v4, "wxContainerReady"

    invoke-interface {v3, v4}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Ljava/lang/Long;

    const-string v4, "test->"

    if-eqz v1, :cond_4f

    if-eqz v0, :cond_4f

    .line 421
    new-instance v5, Ljava/lang/StringBuilder;

    invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V

    const-string v6, "downLoadTime: "

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/Long;->longValue()J

    move-result-wide v6

    invoke-virtual {v0}, Ljava/lang/Long;->longValue()J

    move-result-wide v8

    sub-long/2addr v6, v8

    invoke-virtual {v5, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v4, v0}, Lcom/taobao/weex/utils/WXLogUtils;->d(Ljava/lang/String;Ljava/lang/String;)V

    :cond_4f
    if-eqz v1, :cond_70

    if-eqz v2, :cond_70

    .line 424
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v5, "renderTime: "

    invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/Long;->longValue()J

    move-result-wide v5

    invoke-virtual {v1}, Ljava/lang/Long;->longValue()J

    move-result-wide v7

    sub-long/2addr v5, v7

    invoke-virtual {v0, v5, v6}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v4, v0}, Lcom/taobao/weex/utils/WXLogUtils;->d(Ljava/lang/String;Ljava/lang/String;)V

    :cond_70
    if-eqz v3, :cond_91

    if-eqz v2, :cond_91

    .line 427
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "showTime: "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/Long;->longValue()J

    move-result-wide v1

    invoke-virtual {v3}, Ljava/lang/Long;->longValue()J

    move-result-wide v5

    sub-long/2addr v1, v5

    invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v4, v0}, Lcom/taobao/weex/utils/WXLogUtils;->d(Ljava/lang/String;Ljava/lang/String;)V

    :cond_91
    return-void
.end method

.method private sendProperty(Ljava/lang/String;Ljava/lang/Object;)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "key",
            "value"
        }
    .end annotation

    .line 275
    sget-boolean v0, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->isOpenPerformance:Z

    if-eqz v0, :cond_b

    .line 276
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    const-string v1, "properties"

    invoke-static {v0, v1, p1, p2}, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->transferPerformance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V

    .line 279
    :cond_b
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_10

    return-void

    .line 282
    :cond_10
    invoke-interface {v0, p1, p2}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    return-void
.end method

.method private sendStageInfo(Ljava/lang/String;J)V
    .registers 8
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "name",
            "time"
        }
    .end annotation

    .line 236
    sget-boolean v0, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->isOpenPerformance:Z

    if-eqz v0, :cond_f

    .line 237
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v1

    const-string v2, "stage"

    invoke-static {v0, v2, p1, v1}, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->transferPerformance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V

    :cond_f
    const-string/jumbo v0, "wxRenderTimeOrigin"

    .line 240
    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_21

    .line 241
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mUIHandler:Landroid/os/Handler;

    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->jsPerformanceCallBack:Ljava/lang/Runnable;

    const-wide/16 v2, 0x1f40

    invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    .line 244
    :cond_21
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_26

    return-void

    .line 248
    :cond_26
    invoke-interface {v0, p1, p2, p3}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->onStage(Ljava/lang/String;J)V

    return-void
.end method

.method private sendStats(Ljava/lang/String;D)V
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "key",
            "value"
        }
    .end annotation

    .line 302
    sget-boolean v0, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->isOpenPerformance:Z

    if-eqz v0, :cond_f

    .line 303
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    invoke-static {p2, p3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v1

    const-string v2, "stats"

    invoke-static {v0, v2, p1, v1}, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->transferPerformance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V

    .line 306
    :cond_f
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_14

    return-void

    .line 309
    :cond_14
    invoke-interface {v0, p1, p2, p3}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->addStats(Ljava/lang/String;D)V

    return-void
.end method


# virtual methods
.method public actionLoadImg()V
    .registers 4

    const-string/jumbo v0, "wxImgLoadCount"

    const-wide/high16 v1, 0x3ff0000000000000L    # 1.0

    .line 617
    invoke-virtual {p0, v0, v1, v2}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    return-void
.end method

.method public actionLoadImgResult(ZLjava/lang/String;)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "succeed",
            "errorCode"
        }
    .end annotation

    const-wide/high16 v0, 0x3ff0000000000000L    # 1.0

    if-eqz p1, :cond_b

    const-string/jumbo p1, "wxImgLoadSuccessCount"

    .line 622
    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    goto :goto_11

    :cond_b
    const-string/jumbo p1, "wxImgLoadFailCount"

    .line 624
    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    :goto_11
    return-void
.end method

.method public actionNetRequest()V
    .registers 4

    .line 600
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isFSEnd:Z

    const-wide/high16 v1, 0x3ff0000000000000L    # 1.0

    if-nez v0, :cond_c

    const-string/jumbo v0, "wxFSRequestNum"

    .line 601
    invoke-virtual {p0, v0, v1, v2}, Lcom/taobao/weex/performance/WXInstanceApm;->updateFSDiffStats(Ljava/lang/String;D)V

    :cond_c
    const-string/jumbo v0, "wxNetworkRequestCount"

    .line 603
    invoke-virtual {p0, v0, v1, v2}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    return-void
.end method

.method public actionNetResult(ZLjava/lang/String;)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "succeed",
            "errorCode"
        }
    .end annotation

    const-wide/high16 v0, 0x3ff0000000000000L    # 1.0

    if-eqz p1, :cond_b

    const-string/jumbo p1, "wxNetworkRequestSuccessCount"

    .line 608
    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    goto :goto_11

    :cond_b
    const-string/jumbo p1, "wxNetworkRequestFailCount"

    .line 610
    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    :goto_11
    return-void
.end method

.method public addProperty(Ljava/lang/String;Ljava/lang/Object;)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "key",
            "value"
        }
    .end annotation

    .line 262
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mEnd:Z

    if-eqz v0, :cond_5

    return-void

    :cond_5
    if-eqz p1, :cond_16

    if-nez p2, :cond_a

    goto :goto_16

    .line 268
    :cond_a
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mPropertiesMap:Ljava/util/Map;

    invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 269
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isReady:Z

    if-eqz v0, :cond_16

    .line 270
    invoke-direct {p0, p1, p2}, Lcom/taobao/weex/performance/WXInstanceApm;->sendProperty(Ljava/lang/String;Ljava/lang/Object;)V

    :cond_16
    :goto_16
    return-void
.end method

.method public addStats(Ljava/lang/String;D)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "key",
            "value"
        }
    .end annotation

    .line 289
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mEnd:Z

    if-eqz v0, :cond_5

    return-void

    :cond_5
    if-nez p1, :cond_8

    return-void

    .line 295
    :cond_8
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    invoke-static {p2, p3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v1

    invoke-interface {v0, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 296
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isReady:Z

    if-eqz v0, :cond_18

    .line 297
    invoke-direct {p0, p1, p2, p3}, Lcom/taobao/weex/performance/WXInstanceApm;->sendStats(Ljava/lang/String;D)V

    :cond_18
    return-void
.end method

.method public arriveFSRenderTime()V
    .registers 2

    .line 440
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_5

    return-void

    :cond_5
    const/4 v0, 0x1

    .line 443
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isFSEnd:Z

    const-string/jumbo v0, "wxFsRender"

    .line 444
    invoke-virtual {p0, v0}, Lcom/taobao/weex/performance/WXInstanceApm;->onStage(Ljava/lang/String;)V

    return-void
.end method

.method public arriveInteraction(Lcom/taobao/weex/ui/component/WXComponent;)V
    .registers 11
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "targetComponent"
        }
    .end annotation

    .line 448
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-eqz v0, :cond_fd

    if-eqz p1, :cond_fd

    invoke-virtual {p1}, Lcom/taobao/weex/ui/component/WXComponent;->getInstance()Lcom/taobao/weex/WXSDKInstance;

    move-result-object v0

    if-nez v0, :cond_e

    goto/16 :goto_fd

    .line 452
    :cond_e
    sget-boolean v0, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->isOpenPerformance:Z

    if-eqz v0, :cond_15

    .line 453
    invoke-static {p1}, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->transferInteractionInfo(Lcom/taobao/weex/ui/component/WXComponent;)V

    .line 457
    :cond_15
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_1a

    return-void

    .line 461
    :cond_1a
    invoke-virtual {p1}, Lcom/taobao/weex/ui/component/WXComponent;->getInstance()Lcom/taobao/weex/WXSDKInstance;

    move-result-object v0

    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getWXPerformance()Lcom/taobao/weex/common/WXPerformance;

    move-result-object v0

    if-nez v0, :cond_25

    return-void

    .line 466
    :cond_25
    invoke-static {}, Lcom/taobao/weex/utils/WXUtils;->getFixUnixTime()J

    move-result-wide v1

    .line 468
    invoke-static {}, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->isInteractionLogOpen()Z

    move-result v3

    if-eqz v3, :cond_78

    .line 469
    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "[client][wxinteraction]"

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 470
    invoke-virtual {p1}, Lcom/taobao/weex/ui/component/WXComponent;->getInstance()Lcom/taobao/weex/WXSDKInstance;

    move-result-object v4

    invoke-virtual {v4}, Lcom/taobao/weex/WXSDKInstance;->getInstanceId()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v4, ","

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 471
    invoke-virtual {p1}, Lcom/taobao/weex/ui/component/WXComponent;->getComponentType()Ljava/lang/String;

    move-result-object v5

    invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 472
    invoke-virtual {p1}, Lcom/taobao/weex/ui/component/WXComponent;->getRef()Ljava/lang/String;

    move-result-object v5

    invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 473
    invoke-virtual {p1}, Lcom/taobao/weex/ui/component/WXComponent;->getStyles()Lcom/taobao/weex/dom/WXStyle;

    move-result-object v5

    invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 474
    invoke-virtual {p1}, Lcom/taobao/weex/ui/component/WXComponent;->getAttrs()Lcom/taobao/weex/dom/WXAttr;

    move-result-object p1

    invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    const-string/jumbo v3, "wxInteractionAnalyzer"

    .line 469
    invoke-static {v3, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 478
    :cond_78
    iget-boolean p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->hasRecordFistInteractionView:Z

    if-nez p1, :cond_85

    const-string/jumbo p1, "wxFirstInteractionView"

    .line 479
    invoke-virtual {p0, p1}, Lcom/taobao/weex/performance/WXInstanceApm;->onStage(Ljava/lang/String;)V

    const/4 p1, 0x1

    .line 480
    iput-boolean p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->hasRecordFistInteractionView:Z

    .line 482
    :cond_85
    iget-boolean p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->forceStopRecordInteraction:Z

    if-eqz p1, :cond_8a

    return-void

    .line 485
    :cond_8a
    invoke-static {}, Lcom/taobao/weex/utils/WXUtils;->getFixUnixTime()J

    move-result-wide v3

    .line 486
    iget-wide v5, p0, Lcom/taobao/weex/performance/WXInstanceApm;->preUpdateTime:J

    sub-long v5, v3, v5

    const-wide/16 v7, 0x32

    cmp-long p1, v5, v7

    if-lez p1, :cond_a3

    .line 488
    invoke-static {}, Lcom/taobao/weex/bridge/WXBridgeManager;->getInstance()Lcom/taobao/weex/bridge/WXBridgeManager;

    move-result-object p1

    iget-object v5, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    invoke-virtual {p1, v5}, Lcom/taobao/weex/bridge/WXBridgeManager;->onInteractionTimeUpdate(Ljava/lang/String;)V

    .line 489
    iput-wide v3, p0, Lcom/taobao/weex/performance/WXInstanceApm;->preUpdateTime:J

    .line 492
    :cond_a3
    iget-wide v3, p0, Lcom/taobao/weex/performance/WXInstanceApm;->componentCreateTime:J

    iput-wide v3, p0, Lcom/taobao/weex/performance/WXInstanceApm;->interactionComponentCreateTime:J

    .line 493
    iget-wide v3, p0, Lcom/taobao/weex/performance/WXInstanceApm;->viewCreateTime:J

    iput-wide v3, p0, Lcom/taobao/weex/performance/WXInstanceApm;->interactionViewCreateTime:J

    .line 494
    iget-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    const-string/jumbo v3, "wxLayoutTime"

    invoke-interface {p1, v3}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Ljava/lang/Double;

    if-nez p1, :cond_bb

    const-wide/16 v3, 0x0

    goto :goto_bf

    .line 495
    :cond_bb
    invoke-virtual {p1}, Ljava/lang/Double;->doubleValue()D

    move-result-wide v3

    :goto_bf
    iput-wide v3, p0, Lcom/taobao/weex/performance/WXInstanceApm;->interactionLayoutTime:D

    .line 497
    iget-wide v3, v0, Lcom/taobao/weex/common/WXPerformance;->renderUnixTimeOrigin:J

    sub-long v3, v1, v3

    iput-wide v3, v0, Lcom/taobao/weex/common/WXPerformance;->interactionTime:J

    .line 498
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v3

    iput-wide v3, v0, Lcom/taobao/weex/common/WXPerformance;->interactionRealUnixTime:J

    const-string/jumbo p1, "wxInteraction"

    .line 499
    invoke-virtual {p0, p1, v1, v2}, Lcom/taobao/weex/performance/WXInstanceApm;->onStageWithTime(Ljava/lang/String;J)V

    const-wide/high16 v1, 0x3ff0000000000000L    # 1.0

    const-string/jumbo p1, "wxInteractionScreenViewCount"

    .line 501
    invoke-virtual {p0, p1, v1, v2}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    .line 502
    iget p1, v0, Lcom/taobao/weex/common/WXPerformance;->localInteractionViewAddCount:I

    int-to-double v0, p1

    const-string/jumbo p1, "wxInteractionAllViewCount"

    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->updateMaxStats(Ljava/lang/String;D)V

    .line 503
    invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;

    move-result-object p1

    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    invoke-virtual {p1, v0}, Lcom/taobao/weex/WXSDKManager;->getSDKInstance(Ljava/lang/String;)Lcom/taobao/weex/WXSDKInstance;

    move-result-object p1

    if-eqz p1, :cond_fd

    .line 505
    invoke-virtual {p1}, Lcom/taobao/weex/WXSDKInstance;->getWXPerformance()Lcom/taobao/weex/common/WXPerformance;

    move-result-object p1

    iget-wide v0, p1, Lcom/taobao/weex/common/WXPerformance;->componentCount:J

    long-to-double v0, v0

    const-string/jumbo p1, "wxInteractionComponentCreateCount"

    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->updateMaxStats(Ljava/lang/String;D)V

    :cond_fd
    :goto_fd
    return-void
.end method

.method public arriveNewFsRenderTime()V
    .registers 2

    .line 433
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_5

    return-void

    :cond_5
    const-string/jumbo v0, "wxNewFsRender"

    .line 436
    invoke-virtual {p0, v0}, Lcom/taobao/weex/performance/WXInstanceApm;->onStage(Ljava/lang/String;)V

    return-void
.end method

.method public doDelayCollectData()V
    .registers 5

    .line 404
    new-instance v0, Landroid/os/Handler;

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->delayCollectDataTask:Ljava/lang/Runnable;

    const-wide/16 v2, 0x1f40

    invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    return-void
.end method

.method public doInit()V
    .registers 5

    .line 321
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isReady:Z

    if-nez v0, :cond_5

    return-void

    .line 324
    :cond_5
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mHasInit:Z

    if-eqz v0, :cond_a

    return-void

    :cond_a
    const/4 v0, 0x1

    .line 327
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mHasInit:Z

    .line 328
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_12

    return-void

    .line 331
    :cond_12
    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    invoke-interface {v0, v1}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->onStart(Ljava/lang/String;)V

    .line 332
    invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;

    move-result-object v0

    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKManager;->getAllInstanceMap()Ljava/util/Map;

    move-result-object v0

    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/taobao/weex/WXSDKInstance;

    if-nez v0, :cond_2c

    const-string v1, "unKnowUrl"

    goto :goto_30

    .line 333
    :cond_2c
    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getBundleUrl()Ljava/lang/String;

    move-result-object v1

    :goto_30
    const-string/jumbo v2, "wxBundleUrl"

    .line 334
    invoke-virtual {p0, v2, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    const-string/jumbo v1, "wxErrorCode"

    const-string v2, "0"

    .line 335
    invoke-virtual {p0, v1, v2}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    .line 336
    sget-object v1, Lcom/taobao/weex/WXEnvironment;->JS_LIB_SDK_VERSION:Ljava/lang/String;

    const-string/jumbo v2, "wxJSLibVersion"

    invoke-virtual {p0, v2, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    .line 337
    sget-object v1, Lcom/taobao/weex/WXEnvironment;->WXSDK_VERSION:Ljava/lang/String;

    const-string/jumbo v2, "wxSDKVersion"

    invoke-virtual {p0, v2, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    .line 338
    sget-object v1, Lcom/taobao/weex/WXEnvironment;->WXSDK_VERSION:Ljava/lang/String;

    invoke-virtual {p0, v2, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    .line 339
    sget v1, Lcom/taobao/weex/bridge/WXBridgeManager;->reInitCount:I

    int-to-double v1, v1

    const-string/jumbo v3, "wxReInitCount"

    invoke-virtual {p0, v3, v1, v2}, Lcom/taobao/weex/performance/WXInstanceApm;->addStats(Ljava/lang/String;D)V

    if-eqz v0, :cond_68

    .line 341
    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getRenderType()Ljava/lang/String;

    move-result-object v1

    const-string/jumbo v2, "wxUIKitType"

    invoke-virtual {p0, v2, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    .line 344
    :cond_68
    sget-boolean v1, Lcom/taobao/weex/WXEnvironment;->sUseRunTimeApi:Z

    invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v1

    const-string/jumbo v2, "wxUseRuntimeApi"

    invoke-virtual {p0, v2, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    if-eqz v0, :cond_8e

    .line 345
    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getRenderStrategy()Lcom/taobao/weex/common/WXRenderStrategy;

    move-result-object v1

    sget-object v2, Lcom/taobao/weex/common/WXRenderStrategy;->DATA_RENDER:Lcom/taobao/weex/common/WXRenderStrategy;

    if-eq v1, v2, :cond_86

    .line 346
    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getRenderStrategy()Lcom/taobao/weex/common/WXRenderStrategy;

    move-result-object v1

    sget-object v2, Lcom/taobao/weex/common/WXRenderStrategy;->DATA_RENDER_BINARY:Lcom/taobao/weex/common/WXRenderStrategy;

    if-ne v1, v2, :cond_8e

    :cond_86
    const-string/jumbo v1, "wxRenderType"

    const-string v2, "eagle"

    .line 347
    invoke-virtual {p0, v1, v2}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    :cond_8e
    if-eqz v0, :cond_b6

    .line 350
    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getContainerInfo()Ljava/util/Map;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_9c
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_b6

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/util/Map$Entry;

    .line 351
    invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/String;

    invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v1

    invoke-virtual {p0, v2, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    goto :goto_9c

    :cond_b6
    return-void
.end method

.method public hasInit()Z
    .registers 2

    .line 314
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mHasInit:Z

    return v0
.end method

.method public onAppear()V
    .registers 2

    .line 369
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_5

    return-void

    .line 372
    :cond_5
    invoke-interface {v0}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->onAppear()V

    return-void
.end method

.method public onDisAppear()V
    .registers 2

    .line 376
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_5

    return-void

    .line 379
    :cond_5
    invoke-interface {v0}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->onDisappear()V

    return-void
.end method

.method public onEnd()V
    .registers 3

    .line 386
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-eqz v0, :cond_41

    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mEnd:Z

    if-eqz v0, :cond_9

    goto :goto_41

    .line 389
    :cond_9
    new-instance v0, Landroid/os/Handler;

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->delayCollectDataTask:Ljava/lang/Runnable;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V

    .line 390
    invoke-virtual {p0}, Lcom/taobao/weex/performance/WXInstanceApm;->recordPerformanceDetailData()V

    .line 391
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->exceptionRecord:Ljava/util/Set;

    invoke-interface {v0}, Ljava/util/Set;->clear()V

    .line 392
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mUIHandler:Landroid/os/Handler;

    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->jsPerformanceCallBack:Ljava/lang/Runnable;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V

    const-string/jumbo v0, "wxDestroy"

    .line 393
    invoke-virtual {p0, v0}, Lcom/taobao/weex/performance/WXInstanceApm;->onStage(Ljava/lang/String;)V

    .line 394
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mHasInit:Z

    if-nez v0, :cond_35

    .line 395
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    invoke-interface {v0}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->onEnd()V

    :cond_35
    const/4 v0, 0x1

    .line 397
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mEnd:Z

    .line 398
    invoke-static {}, Lcom/taobao/weex/WXEnvironment;->isApkDebugable()Z

    move-result v0

    if-eqz v0, :cond_41

    .line 399
    invoke-direct {p0}, Lcom/taobao/weex/performance/WXInstanceApm;->printLog()V

    :cond_41
    :goto_41
    return-void
.end method

.method public onEvent(Ljava/lang/String;Ljava/lang/Object;)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "name",
            "value"
        }
    .end annotation

    .line 203
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_5

    return-void

    .line 206
    :cond_5
    invoke-interface {v0, p1, p2}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->onEvent(Ljava/lang/String;Ljava/lang/Object;)V

    return-void
.end method

.method public onInstanceReady(Z)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "isPreDownLoad"
        }
    .end annotation

    const/4 v0, 0x1

    .line 183
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isReady:Z

    if-eqz p1, :cond_b

    const-string/jumbo p1, "wxStartDownLoadBundle"

    .line 185
    invoke-virtual {p0, p1}, Lcom/taobao/weex/performance/WXInstanceApm;->onStage(Ljava/lang/String;)V

    .line 187
    :cond_b
    invoke-virtual {p0}, Lcom/taobao/weex/performance/WXInstanceApm;->doInit()V

    .line 188
    iget-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :goto_18
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_38

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    .line 189
    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Long;

    invoke-virtual {v0}, Ljava/lang/Long;->longValue()J

    move-result-wide v2

    invoke-direct {p0, v1, v2, v3}, Lcom/taobao/weex/performance/WXInstanceApm;->sendStageInfo(Ljava/lang/String;J)V

    goto :goto_18

    .line 191
    :cond_38
    iget-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :goto_42
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_62

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    .line 192
    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Double;

    invoke-virtual {v0}, Ljava/lang/Double;->doubleValue()D

    move-result-wide v2

    invoke-direct {p0, v1, v2, v3}, Lcom/taobao/weex/performance/WXInstanceApm;->sendStats(Ljava/lang/String;D)V

    goto :goto_42

    .line 194
    :cond_62
    iget-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mPropertiesMap:Ljava/util/Map;

    invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :goto_6c
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_86

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    .line 195
    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v0

    invoke-direct {p0, v1, v0}, Lcom/taobao/weex/performance/WXInstanceApm;->sendProperty(Ljava/lang/String;Ljava/lang/Object;)V

    goto :goto_6c

    :cond_86
    return-void
.end method

.method public onStage(Ljava/lang/String;)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "name"
        }
    .end annotation

    .line 213
    invoke-static {}, Lcom/taobao/weex/utils/WXUtils;->getFixUnixTime()J

    move-result-wide v0

    .line 214
    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->onStageWithTime(Ljava/lang/String;J)V

    return-void
.end method

.method public onStageWithTime(Ljava/lang/String;J)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "name",
            "time"
        }
    .end annotation

    .line 223
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mEnd:Z

    if-eqz v0, :cond_5

    return-void

    :cond_5
    if-nez p1, :cond_8

    return-void

    .line 229
    :cond_8
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v1

    invoke-interface {v0, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 230
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isReady:Z

    if-eqz v0, :cond_18

    .line 231
    invoke-direct {p0, p1, p2, p3}, Lcom/taobao/weex/performance/WXInstanceApm;->sendStageInfo(Ljava/lang/String;J)V

    :cond_18
    return-void
.end method

.method public recordPerformanceDetailData()V
    .registers 4

    .line 519
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mHasRecordDetailData:Z

    if-eqz v0, :cond_5

    return-void

    :cond_5
    const/4 v0, 0x1

    .line 522
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mHasRecordDetailData:Z

    .line 523
    iget-wide v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->interactionViewCreateTime:J

    long-to-double v0, v0

    const-string/jumbo v2, "wxViewCost"

    invoke-virtual {p0, v2, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addStats(Ljava/lang/String;D)V

    .line 524
    iget-wide v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->interactionComponentCreateTime:J

    long-to-double v0, v0

    const-string/jumbo v2, "wxComponentCost"

    invoke-virtual {p0, v2, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addStats(Ljava/lang/String;D)V

    .line 525
    iget-wide v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->interactionJsCallBackTime:J

    long-to-double v0, v0

    const-string/jumbo v2, "wxExecJsCallBack"

    invoke-virtual {p0, v2, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addStats(Ljava/lang/String;D)V

    .line 526
    iget-wide v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->interactionLayoutTime:D

    const-string/jumbo v2, "wxLayoutTime"

    invoke-virtual {p0, v2, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addStats(Ljava/lang/String;D)V

    return-void
.end method

.method public sendPerformanceToJS()V
    .registers 8

    .line 629
    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->hasSendInteractionToJS:Z

    if-eqz v0, :cond_5

    return-void

    :cond_5
    const/4 v0, 0x1

    .line 632
    iput-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->hasSendInteractionToJS:Z

    .line 633
    invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;

    move-result-object v1

    invoke-virtual {v1}, Lcom/taobao/weex/WXSDKManager;->getAllInstanceMap()Ljava/util/Map;

    move-result-object v1

    iget-object v2, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/taobao/weex/WXSDKInstance;

    if-nez v1, :cond_1b

    return-void

    .line 638
    :cond_1b
    new-instance v2, Ljava/util/HashMap;

    const/4 v3, 0x2

    invoke-direct {v2, v3}, Ljava/util/HashMap;-><init>(I)V

    .line 639
    iget-object v4, p0, Lcom/taobao/weex/performance/WXInstanceApm;->reportPageName:Ljava/lang/String;

    const-string/jumbo v5, "wxBizID"

    invoke-interface {v2, v5, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 640
    invoke-virtual {v1}, Lcom/taobao/weex/WXSDKInstance;->getBundleUrl()Ljava/lang/String;

    move-result-object v4

    const-string/jumbo v5, "wxBundleUrl"

    invoke-interface {v2, v5, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 642
    new-instance v4, Ljava/util/HashMap;

    invoke-direct {v4, v0}, Ljava/util/HashMap;-><init>(I)V

    .line 643
    invoke-virtual {v1}, Lcom/taobao/weex/WXSDKInstance;->getWXPerformance()Lcom/taobao/weex/common/WXPerformance;

    move-result-object v0

    iget-wide v5, v0, Lcom/taobao/weex/common/WXPerformance;->interactionRealUnixTime:J

    invoke-static {v5, v6}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v0

    const-string/jumbo v5, "wxInteraction"

    invoke-interface {v4, v5, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 645
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0, v3}, Ljava/util/HashMap;-><init>(I)V

    const-string v3, "stage"

    .line 646
    invoke-interface {v0, v3, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    const-string v3, "properties"

    .line 647
    invoke-interface {v0, v3, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    const-string/jumbo v2, "wx_apm"

    .line 649
    invoke-virtual {v1, v2, v0}, Lcom/taobao/weex/WXSDKInstance;->fireGlobalEventCallback(Ljava/lang/String;Ljava/util/Map;)V

    return-void
.end method

.method public setPageName(Ljava/lang/String;)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "pageName"
        }
    .end annotation

    .line 357
    invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_25

    .line 358
    invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;

    move-result-object v0

    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKManager;->getAllInstanceMap()Ljava/util/Map;

    move-result-object v0

    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->mInstanceId:Ljava/lang/String;

    invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/taobao/weex/WXSDKInstance;

    if-eqz v0, :cond_25

    .line 360
    invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getContainerInfo()Ljava/util/Map;

    move-result-object p1

    const-string/jumbo v0, "wxContainerName"

    invoke-interface {p1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Ljava/lang/String;

    .line 363
    :cond_25
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_2a

    goto :goto_2e

    :cond_2a
    invoke-interface {v0, p1}, Lcom/taobao/weex/performance/IWXApmMonitorAdapter;->parseReportUrl(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    :goto_2e
    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->reportPageName:Ljava/lang/String;

    .line 364
    invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result p1

    if-eqz p1, :cond_39

    const-string p1, "emptyPageName"

    goto :goto_3b

    :cond_39
    iget-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->reportPageName:Ljava/lang/String;

    :goto_3b
    iput-object p1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->reportPageName:Ljava/lang/String;

    const-string/jumbo v0, "wxBizID"

    .line 365
    invoke-virtual {p0, v0, p1}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    return-void
.end method

.method public toPerfString()Ljava/lang/String;
    .registers 9

    .line 654
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    const-string/jumbo v1, "wxRenderTimeOrigin"

    invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Long;

    .line 655
    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    const-string/jumbo v2, "wxInteraction"

    invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Long;

    .line 656
    iget-object v2, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;

    const-string/jumbo v3, "wxNewFsRender"

    invoke-interface {v2, v3}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/Long;

    .line 657
    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "ms"

    if-eqz v0, :cond_4c

    if-eqz v1, :cond_4c

    .line 659
    new-instance v5, Ljava/lang/StringBuilder;

    invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V

    const-string v6, "interactiveTime "

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/Long;->longValue()J

    move-result-wide v6

    invoke-virtual {v0}, Ljava/lang/Long;->longValue()J

    move-result-wide v0

    sub-long/2addr v6, v0

    invoke-virtual {v5, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    :cond_4c
    if-eqz v2, :cond_65

    .line 662
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, " wxNewFsRender "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 664
    :cond_65
    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public updateDiffStats(Ljava/lang/String;D)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "name",
            "diffValue"
        }
    .end annotation

    .line 530
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_5

    return-void

    .line 533
    :cond_5
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_1a

    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Double;

    invoke-virtual {v0}, Ljava/lang/Double;->doubleValue()D

    move-result-wide v0

    goto :goto_1c

    :cond_1a
    const-wide/16 v0, 0x0

    :goto_1c
    invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v0

    if-nez v0, :cond_3e

    .line 536
    sget-object p2, Lcom/taobao/weex/common/WXErrorCode;->WX_ERR_HASH_MAP_TMP:Lcom/taobao/weex/common/WXErrorCode;

    new-instance p3, Ljava/lang/StringBuilder;

    invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v0, "key : "

    invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    const/4 p3, 0x0

    const-string v0, ""

    const-string v1, "updateDiffStats"

    invoke-static {v0, p2, v1, p1, p3}, Lcom/taobao/weex/utils/WXExceptionUtils;->commitCriticalExceptionRT(Ljava/lang/String;Lcom/taobao/weex/common/WXErrorCode;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V

    return-void

    .line 546
    :cond_3e
    invoke-virtual {v0}, Ljava/lang/Double;->doubleValue()D

    move-result-wide v0

    add-double/2addr v0, p2

    .line 547
    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addStats(Ljava/lang/String;D)V

    return-void
.end method

.method public updateFSDiffStats(Ljava/lang/String;D)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "name",
            "diffValue"
        }
    .end annotation

    .line 512
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-eqz v0, :cond_c

    iget-boolean v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->isFSEnd:Z

    if-eqz v0, :cond_9

    goto :goto_c

    .line 515
    :cond_9
    invoke-virtual {p0, p1, p2, p3}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    :cond_c
    :goto_c
    return-void
.end method

.method public updateMaxStats(Ljava/lang/String;D)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "name",
            "currentVal"
        }
    .end annotation

    .line 551
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-nez v0, :cond_5

    return-void

    .line 554
    :cond_5
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_1a

    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Double;

    invoke-virtual {v0}, Ljava/lang/Double;->doubleValue()D

    move-result-wide v0

    goto :goto_1c

    :cond_1a
    const-wide/16 v0, 0x0

    :goto_1c
    invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v0

    if-nez v0, :cond_3e

    .line 557
    sget-object p2, Lcom/taobao/weex/common/WXErrorCode;->WX_ERR_HASH_MAP_TMP:Lcom/taobao/weex/common/WXErrorCode;

    new-instance p3, Ljava/lang/StringBuilder;

    invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v0, "key : "

    invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    const/4 p3, 0x0

    const-string v0, ""

    const-string v1, "updateMaxStats"

    invoke-static {v0, p2, v1, p1, p3}, Lcom/taobao/weex/utils/WXExceptionUtils;->commitCriticalExceptionRT(Ljava/lang/String;Lcom/taobao/weex/common/WXErrorCode;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V

    return-void

    .line 566
    :cond_3e
    invoke-virtual {v0}, Ljava/lang/Double;->doubleValue()D

    move-result-wide v0

    cmpg-double v0, v0, p2

    if-gez v0, :cond_51

    .line 567
    invoke-static {p2, p3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object p2

    .line 568
    invoke-virtual {p2}, Ljava/lang/Double;->doubleValue()D

    move-result-wide p2

    invoke-virtual {p0, p1, p2, p3}, Lcom/taobao/weex/performance/WXInstanceApm;->addStats(Ljava/lang/String;D)V

    :cond_51
    return-void
.end method

.method public updateNativePerformanceData(Ljava/util/Map;)V
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "nativePerformanceData"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/String;",
            ">;)V"
        }
    .end annotation

    if-nez p1, :cond_3

    return-void

    .line 671
    :cond_3
    invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :cond_b
    :goto_b
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_41

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    const-wide/high16 v1, -0x4010000000000000L    # -1.0

    .line 674
    :try_start_19
    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Ljava/lang/String;

    invoke-static {v3}, Ljava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/Double;->doubleValue()D

    move-result-wide v3
    :try_end_27
    .catch Ljava/lang/Exception; {:try_start_19 .. :try_end_27} :catch_28

    goto :goto_2d

    :catch_28
    move-exception v3

    .line 676
    invoke-virtual {v3}, Ljava/lang/Exception;->printStackTrace()V

    move-wide v3, v1

    :goto_2d
    cmpl-double v1, v3, v1

    if-eqz v1, :cond_b

    .line 679
    iget-object v1, p0, Lcom/taobao/weex/performance/WXInstanceApm;->recordStatsMap:Ljava/util/Map;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/String;

    invoke-static {v3, v4}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v2

    invoke-interface {v1, v0, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_b

    :cond_41
    return-void
.end method

.method public updateRecordInfo(Ljava/util/Map;)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "extParams"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;)V"
        }
    .end annotation

    .line 573
    iget-object v0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->apmInstance:Lcom/taobao/weex/performance/IWXApmMonitorAdapter;

    if-eqz v0, :cond_49

    if-nez p1, :cond_7

    goto :goto_49

    :cond_7
    const-string/jumbo v0, "wxRequestType"

    .line 577
    invoke-direct {p0, v0, v0, p1}, Lcom/taobao/weex/performance/WXInstanceApm;->addPropeyFromExtParms(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V

    const-string v0, "cacheType"

    const-string/jumbo v1, "wxCacheType"

    .line 578
    invoke-direct {p0, v0, v1, p1}, Lcom/taobao/weex/performance/WXInstanceApm;->addPropeyFromExtParms(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V

    const-string/jumbo v0, "zCacheInfo"

    const-string/jumbo v1, "wxZCacheInfo"

    .line 579
    invoke-direct {p0, v0, v1, p1}, Lcom/taobao/weex/performance/WXInstanceApm;->addPropeyFromExtParms(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V

    .line 581
    sget-wide v0, Lcom/taobao/weex/WXEnvironment;->sJSLibInitTime:J

    long-to-double v0, v0

    const-string/jumbo v2, "wxJSLibInitTime"

    invoke-virtual {p0, v2, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->addStats(Ljava/lang/String;D)V

    .line 582
    sget-boolean v0, Lcom/taobao/weex/WXEnvironment;->JsFrameworkInit:Z

    invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v0

    const-string/jumbo v1, "wxJsFrameworkInit"

    invoke-virtual {p0, v1, v0}, Lcom/taobao/weex/performance/WXInstanceApm;->addProperty(Ljava/lang/String;Ljava/lang/Object;)V

    const-string v0, "actualNetworkTime"

    .line 584
    invoke-interface {p1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    .line 585
    instance-of v0, p1, Ljava/lang/Long;

    if-eqz v0, :cond_49

    .line 586
    check-cast p1, Ljava/lang/Long;

    invoke-virtual {p1}, Ljava/lang/Long;->doubleValue()D

    move-result-wide v0

    const-string/jumbo p1, "wxActualNetworkTime"

    invoke-virtual {p0, p1, v0, v1}, Lcom/taobao/weex/performance/WXInstanceApm;->updateDiffStats(Ljava/lang/String;D)V

    :cond_49
    :goto_49
    return-void
.end method