code: def memory_curve(
      self, run, worker, span, device_type, time_unit="ms"
  ):
      if device_type == "undefined":
          return
      run_manager = self._reader.get_run_manager(run)
      if run_manager is None:
          return []
      profiler_data = run_manager.get_profiler_data(worker, span)
      if profiler_data:
          return profiler_data.get_memory_curve(device_type, time_unit)
  
imports: import json
  from .profiler_reader import ProfilerReader
  from visualdl.server.api import gen_result
  from visualdl.server.api import result
label_desc: Use image node_id 27 for calling the ProfilerApi obj's underlying member method code with example usage: obj.memory_curve(run, worker, span, device_type, time_unit) and returns: list, profiler_data