You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by mi...@apache.org on 2017/08/15 09:51:29 UTC
[04/16] incubator-weex git commit: * [android] add TraceInfo on every
component
* [android] add TraceInfo on every component
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/afeedd92
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/afeedd92
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/afeedd92
Branch: refs/heads/0.16-dev
Commit: afeedd922c81f16c0bc1cf8907a984efcd5da25f
Parents: 4bb0f14
Author: misakuo <mi...@apache.org>
Authored: Tue Jul 25 16:06:18 2017 +0800
Committer: misakuo <mi...@apache.org>
Committed: Tue Jul 25 16:06:18 2017 +0800
----------------------------------------------------------------------
.../taobao/weex/ui/component/WXComponent.java | 27 +++++++++++++++++++-
.../ui/component/list/BasicListComponent.java | 1 +
2 files changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/afeedd92/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 985b616..cc44e79 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -39,6 +39,7 @@ import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
+
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.taobao.weex.ComponentObserver;
@@ -57,6 +58,8 @@ import com.taobao.weex.dom.WXDomTask;
import com.taobao.weex.dom.WXStyle;
import com.taobao.weex.dom.action.Actions;
import com.taobao.weex.dom.flex.Spacing;
+import com.taobao.weex.tracing.Stopwatch;
+import com.taobao.weex.tracing.WXTracing;
import com.taobao.weex.ui.IFComponentHolder;
import com.taobao.weex.ui.animation.WXAnimationModule;
import com.taobao.weex.ui.component.pesudo.OnActivePseudoListner;
@@ -72,6 +75,7 @@ import com.taobao.weex.utils.WXReflectionUtils;
import com.taobao.weex.utils.WXResourceUtils;
import com.taobao.weex.utils.WXUtils;
import com.taobao.weex.utils.WXViewUtils;
+
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
@@ -123,6 +127,8 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
private int mType = TYPE_COMMON;
private boolean mNeedLayoutOnAnimation = false;
+ public WXTracing.TraceInfo mTraceInfo = new WXTracing.TraceInfo();
+
public static final int TYPE_COMMON = 0;
public static final int TYPE_VIRTUAL = 1;
@@ -286,6 +292,7 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
}
public void applyLayoutAndEvent(WXComponent component) {
+ long startNanos = System.nanoTime();
if(!isLazy()) {
if (component == null) {
component = this;
@@ -293,8 +300,8 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
setLayout(component.getDomObject());
setPadding(component.getDomObject().getPadding(), component.getDomObject().getBorder());
addEvents();
-
}
+ mTraceInfo.uiThreadNanos += (System.nanoTime() - startNanos);
}
protected final void addFocusChangeListener(OnFocusChangeListener l){
@@ -348,6 +355,7 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
}
public void bindData(WXComponent component){
+ long startNanos = System.nanoTime();
if(!isLazy()) {
if (component == null) {
component = this;
@@ -357,6 +365,7 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
updateAttrs(component);
updateExtra(component.getDomObject().getExtra());
}
+ mTraceInfo.uiThreadNanos += (System.nanoTime() - startNanos);
}
public void updateStyle(WXComponent component){
@@ -893,9 +902,12 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
*
*/
public final void createView() {
+ long startNanos = System.nanoTime();
if(!isLazy()) {
createViewImpl();
}
+ mTraceInfo.uiThreadStart = System.currentTimeMillis();
+ mTraceInfo.uiThreadNanos += (System.nanoTime() - startNanos);
}
protected void createViewImpl() {
@@ -1543,4 +1555,17 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
message.what = WXDomHandler.MsgType.WX_DOM_UPDATE_STYLE;
WXSDKManager.getInstance().getWXDomManager().sendMessage(message);
}
+
+ public void onRenderFinish() {
+ if (isLazy()) {
+ return;
+ }
+ double domTime = Stopwatch.nanosToMillis(((WXDomObject) mDomObj).mDomThreadNanos + mTraceInfo.domThreadNanos);
+ double uiTime = Stopwatch.nanosToMillis(mTraceInfo.uiThreadNanos);
+ WXLogUtils.e("RenderFinish", "Ref: " + getRef() + ", type: " + mDomObj.getType() + ", dom: " + mTraceInfo.domQueueTime + "/" + domTime + ", ui: " + mTraceInfo.uiQueueTime + "/" + uiTime);
+ WXTracing.TraceEvent domEvent = WXTracing.measureAndSubmit("dom " + mDomObj.getType() + "@" + getRef(), "X", mTraceInfo.rootEventId, getInstanceId(), domTime);
+ domEvent.ts = mTraceInfo.domThreadStart;
+ domEvent.tname = "DOMThread";
+ WXTracing.measureAndSubmit("ui " + mDomObj.getType() + "@" + getRef(), "X", mTraceInfo.rootEventId, getInstanceId(), uiTime).ts = mTraceInfo.uiThreadStart;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/afeedd92/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
index 306be55..9418a1f 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
@@ -850,6 +850,7 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView
if (holder.getComponent() != null && holder.getComponent() instanceof WXCell) {
if(holder.isRecycled()) {
holder.bindData(component);
+ component.onRenderFinish();
}
if (mDragHelper == null || !mDragHelper.isDraggable()) {
return;