예제 #1
0
  /**
   * Adds the focused hot spot nodes.
   *
   * @param frame The frame node
   */
  private void addFocusedHotSpotNodes(ICallTreeNode frame) {
    String methodName = frame.getName();
    MethodNode node = new MethodNode(this, methodName, null);
    node.incrementCount(frame.getInvocationCount());
    node.incrementTime(frame.getSelfTime());
    focusedHotSpotRoots.put(methodName, node);

    for (CallTreeNode child : ((CallTreeNode) frame).getChildren()) {
      methodName = child.getName();
      if (focusedHotSpotRoots.containsKey(methodName)) {
        node = focusedHotSpotRoots.get(methodName);
        node.incrementCount(child.getInvocationCount());
        node.incrementTime(child.getSelfTime());
      } else {
        node = new MethodNode(this, methodName, null);
        node.incrementCount(child.getInvocationCount());
        node.incrementTime(child.getSelfTime());
        focusedHotSpotRoots.put(methodName, node);
      }
      addFocusedHotSpotNodes(child);
    }
  }