[ 
https://issues.apache.org/jira/browse/WEEX-588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16589834#comment-16589834
 ] 

ASF GitHub Bot commented on WEEX-588:
-------------------------------------

zshshr closed pull request #1467: [WEEX-588][Android] fix too much msg when 
record error/stage
URL: https://github.com/apache/incubator-weex/pull/1467
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java 
b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index 1c43a331bc..ff71c758e9 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -1863,7 +1863,7 @@ public void onHttpFinish(WXResponse response) {
 
       mWXPerformance.networkTime = System.currentTimeMillis() - 
startRequestTime;
       if(null!= response && response.extendParams!=null){
-        mApmForInstance.updateExtInfo(response.extendParams);
+        mApmForInstance.updateRecordInfo(response.extendParams);
         Object 
actualNetworkTime=response.extendParams.get("actualNetworkTime");
         mWXPerformance.actualNetworkTime=actualNetworkTime instanceof 
Long?(long)actualNetworkTime:0;
         WXLogUtils.renderPerformanceLog("actualNetworkTime", 
mWXPerformance.actualNetworkTime);
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceApm.java 
b/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceApm.java
index 20fd2345fd..21e4f02a5a 100644
--- a/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceApm.java
+++ b/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceApm.java
@@ -106,9 +106,11 @@
     private Map<String, Double> recordStatsMap;
     private boolean isFSEnd;
     private boolean mHasInit = false;
+    public final Map<String,Object> extInfo;
 
     public WXInstanceApm(String instanceId) {
         mInstanceId = instanceId;
+        extInfo = new ConcurrentHashMap<>();
         IApmGenerator generator = WXSDKManager.getInstance().getApmGenerater();
         if (null != generator) {
             apmInstance = generator.generateApmInstance(WEEX_PAGE_TOPIC);
@@ -308,7 +310,7 @@ public void updateMaxStats(String name, double currentVal) {
         }
     }
 
-    public void updateExtInfo(Map<String, Object> extParams) {
+    public void updateRecordInfo(Map<String, Object> extParams) {
         if (null == apmInstance || null == extParams) {
             return;
         }
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceExceptionRecord.java
 
b/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceExceptionRecord.java
index cdac68fa31..3dd8b5ff9f 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceExceptionRecord.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceExceptionRecord.java
@@ -18,7 +18,13 @@
  */
 package com.taobao.weex.performance;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -33,7 +39,7 @@
     public static int sErrorMsgSizeLimit = 5;
     public static final String KEY_EXP_STAGE_LIST = "wxStageList";
 
-    public final List<String> stageList;
+    private final Map<String,Long> mStageMap;
     public final List<WXJSExceptionInfo> errorList;
     public final String instanceId;
     public final AtomicBoolean hasAddView;
@@ -43,7 +49,7 @@
 
     public WXInstanceExceptionRecord(String instanceId) {
         this.instanceId = instanceId;
-        this.stageList = new CopyOnWriteArrayList<>();
+        this.mStageMap = new ConcurrentHashMap<>();
         this.errorList = new CopyOnWriteArrayList<>();
         this.hasAddView = new AtomicBoolean(false);
         this.hasDegrade = new AtomicBoolean(false);
@@ -79,7 +85,7 @@ public void recordStage(String stage, long time) {
             ) {
             setBeginRender(true);
         }
-        stageList.add(stage + " :" + time);
+        mStageMap.put(stage,time);
     }
 
     public void setBeginRender(boolean isBegin){
@@ -87,12 +93,20 @@ public void setBeginRender(boolean isBegin){
     }
 
     public String convertStageToStr() {
-        if (stageList.isEmpty()) {
-            return "empty";
+        if (mStageMap.isEmpty()) {
+            return "emptyStage";
         }
+        List<Map.Entry<String,Long>> list = new 
ArrayList<>(mStageMap.entrySet());
+        Collections.sort(list, new Comparator<Entry<String, Long>>() {
+            @Override
+            public int compare(Entry<String, Long> o1, Entry<String, Long> o2) 
{
+                return (int)(o1.getValue() - o2.getValue());
+            }
+        });
+
         StringBuilder builder = new StringBuilder();
-        for (String value : stageList) {
-            builder.append(value).append(" -> ");
+        for (Map.Entry<String,Long> entry : list) {
+            
builder.append(entry.getKey()).append(':').append(entry.getValue()).append("->");
         }
         return builder.toString();
     }
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionCreateFinish.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionCreateFinish.java
index 0f8ccf1bb1..67a0c849eb 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionCreateFinish.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionCreateFinish.java
@@ -42,6 +42,7 @@ public GraphicActionCreateFinish(@NonNull WXSDKInstance 
instance) {
         this.mLayoutHeight = (int) component.getLayoutHeight();
     }
     
instance.getApmForInstance().onStage(WXInstanceApm.KEY_PAGE_STAGES_CREATE_FINISH);
+    
instance.getApmForInstance().extInfo.put(WXInstanceApm.KEY_PAGE_STAGES_CREATE_FINISH,true);
 
     // todo add LayoutFinishListener
 //    final LayoutFinishListener listener;
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/utils/WXExceptionUtils.java 
b/android/sdk/src/main/java/com/taobao/weex/utils/WXExceptionUtils.java
index a99c36c5b0..059911cf58 100644
--- a/android/sdk/src/main/java/com/taobao/weex/utils/WXExceptionUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXExceptionUtils.java
@@ -27,6 +27,7 @@
 import com.taobao.weex.WXSDKManager;
 import com.taobao.weex.adapter.IWXJSExceptionAdapter;
 import com.taobao.weex.common.WXErrorCode;
+import com.taobao.weex.common.WXErrorCode.ErrorType;
 import com.taobao.weex.common.WXJSExceptionInfo;
 import com.taobao.weex.common.WXPerformance;
 import com.taobao.weex.performance.WXAnalyzerDataTransfer;
@@ -67,8 +68,6 @@ public static void commitCriticalExceptionRT(@Nullable final 
String instanceId,
                if (null == commitMap){
                        commitMap = new HashMap<>();
                }
-               commitMap.put("activity","empty");
-
                if (!TextUtils.isEmpty(instanceId)) {
                        instanceIdCommit = instanceId;
                        instance = 
WXSDKManager.getInstance().getAllInstanceMap().get(instanceId);
@@ -104,7 +103,7 @@ public static void commitCriticalExceptionRT(@Nullable 
final String instanceId,
                        adapter.onJSException(exceptionCommit);
                }
 
-               if (null != instance){
+               if (null != instance && 
exceptionCommit.getErrCode().getErrorType() != ErrorType.RENDER_ERROR){
                        
instance.getExceptionRecorder().recordErrorMsg(exceptionCommit);
                }
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> [Android] fix too much msg when record error/stage
> --------------------------------------------------
>
>                 Key: WEEX-588
>                 URL: https://issues.apache.org/jira/browse/WEEX-588
>             Project: Weex
>          Issue Type: Bug
>          Components: Android
>            Reporter: peihan
>            Assignee: YorkShen
>            Priority: Major
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to