code: def add_profiler_step(options_str=None):
      """
      Enable the operator-level timing using PaddlePaddle's profiler.
      The profiler uses a independent variable to count the profiler steps.
      One call of this function is treated as a profiler step.
      Args:
        profiler_options - a string to initialize the ProfilerOptions.
                           Default is None, and the profiler is disabled.
      """
      if options_str is None:
          return
  
      global _prof
      global _profiler_step_id
      global _profiler_options
  
      if _profiler_options is None:
          _profiler_options = ProfilerOptions(options_str)
      # profile : https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/performance_improving/profiling_model.html#chakanxingnengshujudetongjibiaodan
      # timer_only = True  only the model's throughput and time overhead are displayed
      # timer_only = False calling summary can print a statistical form that presents performance data from different perspectives.
      # timer_only = False the output Timeline information can be found in the profiler_log directory
      if _prof is None:
          _timer_only = str(_profiler_options["timer_only"]) == str(
              True
          )
          _prof = profiler.Profiler(
              scheduler=(
                  _profiler_options["batch_range"][0],
                  _profiler_options["batch_range"][1],
              ),
              on_trace_ready=profiler.export_chrome_tracing(
                  "./profiler_log"
              ),
              timer_only=_timer_only,
          )
          _prof.start()
      else:
          _prof.step()
  
      if _profiler_step_id == _profiler_options["batch_range"][1]:
          _prof.stop()
          _prof.summary(
              op_detail=True, thread_sep=False, time_unit="ms"
          )
          _prof = None
          if _profiler_options["exit_on_finished"]:
              sys.exit(0)
  
      _profiler_step_id += 1
  
file_path: PaddleOCR/ppocr/utils/profiler.py
imports: import sys
  import paddle.profiler
label_desc: Use image node_id 1 for calling a global function with example usage: add_profiler_step(options_str) without return types