获取每个方法中的cpu和内存耗费最值点.

def get_each_method_maximun_cpu_mem(self):
        """获取每个方法中的cpu和内存耗费最值点."""
        # 本函数用于丰富self.method_exec_info的信息:存入cpu、mem最值点
        self.method_exec_info = deepcopy(self.data.get("method_exec_info", []))
        method_exec_info = deepcopy(self.method_exec_info)  # 用来辅助循环
        method_index, cpu_max, cpu_max_time, mem_max, mem_max_time = 0, 0, 0, 0, 0  # 临时变量
        self.max_mem = 0
        for index, timestamp in enumerate(self.timestamp_list):
            # method_exec_info是按顺序的,逐个遍历找出每个method_exec_info中的cpu和mem的最值点和timestamp:
            start, end = method_exec_info[0]["start_time"], method_exec_info[0]["end_time"]
            if timestamp < start:
                # 方法正式start之前的数据，不能参与方法内的cpu、mem计算，直接忽略此条数据
                continue
            elif timestamp <= end:
                # 方法执行期间的数据,纳入最值比较:
                if self.cpu_axis[index] > cpu_max:
                    cpu_max, cpu_max_time = self.cpu_axis[index], timestamp
                if self.mem_axis[index] > mem_max:
                    mem_max, mem_max_time = self.mem_axis[index], timestamp
                continue
            else:
                # 本次方法筛选完毕，保存本方法的最值cpu和mem
                if cpu_max_time != 0 and mem_max_time != 0:
                    self.method_exec_info[method_index].update({"cpu_max": cpu_max, "mem_max": mem_max, "cpu_max_time": cpu_max_time, "mem_max_time": mem_max_time})
                # 保存最大的内存，后面绘图时用
                if mem_max > self.max_mem:
                    self.max_mem = mem_max
                cpu_max, mem_max = 0, 0  # 临时变量
                # 准备进行下一个方法的检查，发现已经检查完则正式结束
                del method_exec_info[0]
                if method_exec_info:
                    method_index += 1  # 进行下一个方法时:当前方法的序号+1
                    continue
                else:
                    break