feat:use global anchor hook to print log

This commit is contained in:
pengfei.zhou
2021-07-20 11:29:53 +08:00
committed by osborn
parent 17e14e7119
commit a021aae3de
9 changed files with 71 additions and 43 deletions

View File

@@ -52,12 +52,7 @@ public class DoricDev {
private DoricDev() {
this.isRunningInEmulator = SimulatorUtil.isSimulator(Doric.application());
DoricNativeDriver.getInstance().getRegistry().registerMonitor(new DoricDevMonitor());
DoricNativeDriver.getInstance().getRegistry().setGlobalPerformanceAnchorHook(new DoricPerformanceProfile.AnchorHook() {
@Override
public void onAnchor(String name, long prepare, long start, long end) {
}
});
DoricNativeDriver.getInstance().getRegistry().setGlobalPerformanceAnchorHook(new DoricDevPerformanceAnchorHook());
}
public static DoricDev getInstance() {

View File

@@ -15,6 +15,8 @@
*/
package pub.doric.devkit;
import android.util.Log;
import pub.doric.performance.DoricPerformanceProfile;
/**
@@ -22,9 +24,17 @@ import pub.doric.performance.DoricPerformanceProfile;
* @Author: pengfei.zhou
* @CreateDate: 2021/7/20
*/
public class DoricDevPerformanceAnchorHook implements DoricPerformanceProfile.AnchorHook {
public class DoricDevPerformanceAnchorHook implements DoricPerformanceProfile.GlobalAnchorHook {
private static final String TAG = "DoricPerformance";
@Override
public void onAnchor(DoricPerformanceProfile profile, String name, long prepare, long start, long end) {
Log.d(TAG, String.format("%s: %s prepared %dms, cost %dms.",
profile.getName(), name, start - prepare, end - start));
}
@Override
public void onAnchor(String name, long prepare, long start, long end) {
//DO nothing
}
}

View File

@@ -78,24 +78,24 @@ public class DoricDevPerfActivity extends DoricDevBaseActivity {
private List<AnchorNode> anchorNodes = new ArrayList<>();
private MyAdapter() {
Map<String, Long> anchorMap = doricContext.getPerformanceProfile().getAnchorMap();
for (String key : anchorMap.keySet()) {
if (key.endsWith("#prepare")) {
Long prepare = anchorMap.get(key);
if (prepare != null) {
AnchorNode anchorNode = new AnchorNode();
anchorNode.name = key.substring(0, key.lastIndexOf("#prepare"));
anchorNode.prepare = prepare;
anchorNodes.add(anchorNode);
}
}
}
Collections.sort(anchorNodes, new Comparator<AnchorNode>() {
@Override
public int compare(AnchorNode o1, AnchorNode o2) {
return (int) (o1.prepare - o2.prepare);
}
});
// Map<String, Long> anchorMap = doricContext.getPerformanceProfile().getAnchorMap();
// for (String key : anchorMap.keySet()) {
// if (key.endsWith("#prepare")) {
// Long prepare = anchorMap.get(key);
// if (prepare != null) {
// AnchorNode anchorNode = new AnchorNode();
// anchorNode.name = key.substring(0, key.lastIndexOf("#prepare"));
// anchorNode.prepare = prepare;
// anchorNodes.add(anchorNode);
// }
// }
// }
// Collections.sort(anchorNodes, new Comparator<AnchorNode>() {
// @Override
// public int compare(AnchorNode o1, AnchorNode o2) {
// return (int) (o1.prepare - o2.prepare);
// }
// });
}
@Override