def METHOD_NAME(self, backend_list):
    op_time = {}
    inference_time = {}
    for backend in backend_list:
        try:
            # Trace file is located at ./tools/stab/traces
            trace_path = Path(
                __file__
            ).parent / 'traces' / f"{self.nnpkg_dir.name}_{backend}_{self.num_threads}"
            logging.debug(f"Trace path : {trace_path}")
            with open(trace_path) as f:
                data = json.load(f)
                execution_data = data['Execution_Data']
                for entry in execution_data:
                    if entry == "memory":
                        continue
                    elif entry == "runtime":
                        inference_time[backend] = execution_data['runtime']['Graph'][
                            'Avg_Time']
                        continue
                    op_backend = entry
                    backend_data = execution_data[op_backend]
                    for op in backend_data:
                        op_index = int(op.split(' ')[2][1:])
                        op_type = op.split(' ')[-1]
                        time = int(backend_data[op]["Avg_Time"])
                        if op_index not in op_time.keys():
                            op_time[op_index] = {op_backend: time}
                            op_time[op_index].update({"type": op_type})
                        else:
                            op_time[op_index].update({op_backend: time})
        except IOError as e:
            logging.warning(e)
    return op_time, inference_time