Top内存折线图¶
- 示例
查看...查看...
import matplotlib.pyplot as plt import matplotlib import datetime matplotlib.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 设置中文字体 matplotlib.rcParams['axes.unicode_minus'] = False # 正确显示负号 def read_log_file(file_path): times = [] virt_values = [] res_values = [] with open(file_path, 'r') as file: for line in file: parts = line.split() if len(parts) < 5: continue time_str = parts[0] + ' ' + parts[1] time = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S') times.append(time) virt = int(parts[2]) / 1024 virt_values.append(virt) res = float(parts[3].replace('g', '')) * 1024 res_values.append(res) return times, virt_values, res_values def plot_data(times, virt_values, res_values): plt.figure(figsize=(10, 5)) plt.plot(times, virt_values, label='VIRT (MB)', color='b') plt.plot(times, res_values, label='RES (MB)', color='r') plt.xlabel('时间') plt.ylabel('内存 (MB)') plt.title('内存使用') plt.get_current_fig_manager().window.title('内存监测') # 设置y轴刻度间隔 plt.yticks(range(0, int(max(virt_values)) + 500, 500)) plt.tick_params(axis='y', left=False) # 删除x轴刻度 plt.tick_params(axis='x', bottom=False) # 删除y轴刻度 plt.legend() plt.grid(True) plt.xticks(rotation=45) plt.tight_layout() plt.show() if __name__ == '__main__': file_path = 'top.log' times, virt_values, res_values = read_log_file(file_path) plot_data(times, virt_values, res_values)
- top.log数据形式
时间 VIRT RES