public static void putAllClones(final TMap<Method, SampleNode> source, final TMap<Method, SampleNode> destination) { source.forEachEntry((final Method a, final SampleNode b) -> { destination.put(a, SampleNode.clone(b)); return true; }); }
public static void traverse(final Method m, final SampleNode node, final Invocation handler, final Function<Deque, TraversalData> func) { Deque<TraversalData> dq = new ArrayDeque<>(); dq.add(new TraversalData(m, node)); TraversalData t; while ((t = func.apply(dq)) != null) { if (t.n.subNodes != null) { Method from = t.m; boolean conti = t.n.subNodes.forEachEntry(new TObjectObjectProcedure<Method, SampleNode>() { @Override public boolean execute(final Method a, final SampleNode b) { boolean result = handler.invocation(from, a, b.sampleCount); if (result) { dq.addLast(new TraversalData(a, b)); } return result; } }); if (!conti) { return; } } } }
@Override public Map<String, SampleNode> getCollectionsAndReset() { TMap<String, SampleNode> result = new THashMap<>(collections.size()); collections.forEachEntry((k, v) -> { result.put(k, v.getAndReset()); return true; }); return result; }
@Override public Map<String, SampleNode> getCollections() { TMap<String, SampleNode> result = new THashMap<>(collections.size()); collections.forEachEntry((k, v) -> { result.put(k, v.get()); return true; }); return result; }
public void add(final SampleNode node) { this.sampleCount += node.getSampleCount(); TMap<Method, SampleNode> oSubNodes = (TMap<Method, SampleNode>) node.getSubNodes(); if (this.subNodes == null) { this.subNodes = oSubNodes; } else if (oSubNodes != null) { oSubNodes.forEachEntry((final Method m, final SampleNode b) -> { SampleNode other = subNodes.get(m); if (other == null) { subNodes.put(m, b); } else { other.sampleCount += b.sampleCount; } return true; }); } }
public static <E extends Exception> int convert(final Method method, final StackSamples node, final int parentId, final int id, final Handler<StackSampleElement, E> handler) throws E { final Deque<TraversalNode> dq = new ArrayDeque<>(); dq.addLast(new TraversalNode(method, node, parentId)); int nid = id; while (!dq.isEmpty()) { TraversalNode first = dq.removeFirst(); StackSamples n = first.getNode(); StackSampleElement sample = new StackSampleElement(nid, first.getParentId(), n.getSampleCount(), first.getMethod()); final TMap<Method, ? extends StackSamples> subNodes = n.getSubNodes(); final int pid = nid; if (subNodes != null) { subNodes.forEachEntry((a, b) -> { dq.addLast(new TraversalNode(a, b, pid)); return true; }); } handler.handle(sample, parentId); nid++; } return nid; }
public static SampleNode clone(final SampleNode node) { if (node.subNodes == null) { return new SampleNode(node.sampleCount, null); } final TMap<Method, SampleNode> newSubNodes = new MethodMap<>(node.subNodes.size()); node.subNodes.forEachEntry((final Method a, final SampleNode b) -> { newSubNodes.put(a, SampleNode.clone(b)); return true; }); return new SampleNode(node.sampleCount, newSubNodes); }
TMap<Method, SampleNode> subNodes = node.getSubNodes(); if (subNodes != null) { subNodes.forEachEntry((k, v) -> { dq.add(new TraversalData(parentVertex, k, v)); return true; final Sample vvv = vtx; if (subNodes2 != null) { subNodes2.forEachEntry((k, v) -> { dq.add(new TraversalData(vvv, k, v)); return true;
+ node2.subNodes.size()) / 0.7)); node1.subNodes.forEachEntry((final Method m, final SampleNode b) -> { SampleNode other = node2.subNodes.get(m); if (other == null) { node2.subNodes.forEachEntry((final Method m, final SampleNode b) -> { if (!node1.subNodes.containsKey(m)) { ns.put(m, SampleNode.clone(b));