绘制应用程序内存占用随时间变化的图像显示

Posted albizzia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绘制应用程序内存占用随时间变化的图像显示相关的知识,希望对你有一定的参考价值。

绘制应用程序内存占用随时间变化的图像分为几个操作,这些操作,应该可以更加自动化,我这里,使用几个阶段的方式,使用者可以自由发挥。

1. 使用top记录一个应用程序占用信息随时间变化的文件

top -b | stdbuf -oL grep firefox > 1.txt

说明:上述命令,可以改变top的输入参数,例如使用-d来修改打印的间隔。

2. 简单使用awk输出VIRT列的输出到另外一个文件中

awk ‘{print $5 > "2.txt"}‘ 1.txt

3. 使用matplotlib简单进行绘制,这里使用gnuplot应该也完全可以,由于我之前略微学过一点深度学习,接触了一点matplotlib,所以这里就使用matplotlib的简单指令了。

import matplotlib.pyplot as plt
import numpy as np
import fileinput

ipt = np.array([], order=C)
with fileinput.input(files=(/home/XXX/2.txt)) as f:
    for line in f:
        ipt = np.append(ipt, line)

plt.figure(figsize=(20, 10))   # 修改图像大小
plt.plot(ipt)
plt.ylabel("VIRT")
plt.show()    

我是使用的anaconda的jupyter进行绘制的,显示效果如下:

技术分享图片

这里显示的是我的firefox的VIRT随着时间变化的曲线。纵坐标可以通过上面代码中的注释进行调整。这个功能,可以用于调试应用,使用top记录下待测试应用内存随时间变化的曲线,然后,可以根据图像判断,是否存在内存泄露。对于mysql一类的调优,这个也是很好的辅助方法,我之所有有这个尝试,就是从看《高性能mysql》那本书得到的启发。当然,使用的方法比较简陋,如果有什么好的提议,多谢提出。

以上是关于绘制应用程序内存占用随时间变化的图像显示的主要内容,如果未能解决你的问题,请参考以下文章

跟踪 C++ 内存分配

使视图的高度随图像 Xcode swift 的高度动态变化

在屏幕上绘制图像后背景发生变化

计算机视觉基础MATLAB程序绘制空间内的彩色图像像素变化曲面等值线图生成子图像,显示该子图像的直方图与茎干图子图像进行自适应阈值分割和对比度拉伸,彩色图像处理

图像不占用DataGridCell中的整个空间

R绘制堆叠的密度图(Stacked Area Chart)