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