Search in sources :

Example 1 with Call

use of com.android.tools.perflib.vmtrace.Call in project android by JetBrains.

the class CpuTraceArt method convertCallsToNode.

private HNode<MethodModel> convertCallsToNode(VmTraceData data, Call call, int depth) {
    HNode<MethodModel> node = new HNode<>();
    // ART stores timestamp in a compressed fashion: All timestamp are 32 bits relative to a startTime.
    // We need to reconstruct the full timestamp by adding each of them to startTime.
    node.setStart((call.getEntryTime(ClockType.GLOBAL, TimeUnit.MICROSECONDS) + data.getStartTimeUs()));
    node.setEnd((call.getExitTime(ClockType.GLOBAL, TimeUnit.MICROSECONDS) + data.getStartTimeUs()));
    node.setDepth(depth);
    MethodModel method = new MethodModel();
    method.setName(data.getMethod(call.getMethodId()).methodName);
    method.setNamespace(data.getMethod(call.getMethodId()).className);
    node.setData(method);
    for (Call callee : call.getCallees()) {
        node.addHNode(convertCallsToNode(data, callee, depth + 1));
    }
    return node;
}
Also used : HNode(com.android.tools.adtui.model.HNode) Call(com.android.tools.perflib.vmtrace.Call)

Aggregations

HNode (com.android.tools.adtui.model.HNode)1 Call (com.android.tools.perflib.vmtrace.Call)1