繪制應用程序內存占用隨時間變化的圖像顯示
阿新 • • 發佈:2019-01-20
com cond otl () fig 打印 numpy 入參 進行
繪制應用程序內存占用隨時間變化的圖像分為幾個操作,這些操作,應該可以更加自動化,我這裏,使用幾個階段的方式,使用者可以自由發揮。
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》那本書得到的啟發。當然,使用的方法比較簡陋,如果有什麽好的提議,多謝提出。
繪制應用程序內存占用隨時間變化的圖像顯示