code: public static void end() {
      if (!active) return;
  
      TimerStack stack = curStack.get();
      if (null == stack) return;
  
      TimerNode currentNode = stack.pop();
  
      if (currentNode != null) {
        TimerNode parent = stack.peek();
        long total = currentNode.end();
        // if we are the root timer, then print out the times
        if (parent == null) {
          printTimes(currentNode);
          curStack.set(null); // for those servers that use thread pooling
        } else {
          if (total > mintime) parent.children.add(currentNode);
        }
      }
    }
docs: End a preformance profiling with the <code>name</code> given. Deal with
  profile hierarchy automatically, so caller don't have to be concern about it.