code: def add_item(self, node):
      self.add_call()
      self.add_cpu_time(node.cpu_time)
      self.add_gpu_time(node.gpu_time)
      self.add_general_gpu_time(node.general_gpu_time)
      for child in node.children_node:
          if child.type != "Operator":
              if child.name not in self.operator_inners:
                  self.operator_inners[child.name] = OperatorItem(
                      child.name
                  )
              self.operator_inners[child.name].add_item(child)
  
      for runtimenode in node.runtime_node:
          for devicenode in runtimenode.device_node:
              name = devicenode.name
              if name not in self.devices:
                  self.devices[name] = DeviceItem(name)
              self.devices[name].add_item(devicenode)
  
file_path: VisualDL/visualdl/component/profiler/parser/operator_parser.py
imports: import collections
  from .kernel_parser import DeviceItem
  from .utils import wrap_tree
label_desc: Use image node_id 9 for calling the OperatorItem obj's underlying member method code with example usage: obj.add_item(node) without return types