我正在研究用Python编写的某种系统服务(实际上它只是一个日志解析器)。这个程序应该持续工作很长一段时间(希望我指的是没有失败和需要重新启动的日子和星期)。这就是我为什么担心内存消耗的原因。
我将不同站点的进程内存使用情况的不同信息组合成一个简单的函数:#!/usr/bin/env python
from pprint import pprint
from guppy import hpy
from datetime import datetime
import sys
import os
import resource
import re
def debug_memory_leak():
#Getting virtual memory size
pid = os.getpid()
with open(os.path.join("/proc", str(pid), "status")) as f:
lines = f.readlines()
_vmsize = [l for l in lines if l.startswith("VmSize")][0]
vmsize = int(_vmsize.split()[1])
#Getting physical memory size
pmsize = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
#Analyzing the dynamical memory segment - total number of objects in memory and heap size
h = hpy().heap()
if __debug__:<