工作中遇到一个软件总是莫名的崩溃到nvwgf2umx.dll,网上都说是显卡驱动问题,但是更新了驱动依然有该问题,于是怀疑是不是系统资源耗尽了。
为了定位以上问题,是用CBrother写了一个脚本定时读取数据写进日志里,这样可以根据软件崩溃时间看看当时的系统资源情况,最后发现还真的是有内存和显存泄漏,可帮了我大忙了。
import lib/consoleprocess
import lib/windows/winapi
import CBCLib.code
/*typedef struct _MEMORYSTATUSEX {
DWORD dwLength;
DWORD dwMemoryLoad;
DWORDLONG ullTotalPhys;
DWORDLONG ullAvailPhys;
DWORDLONG ullTotalPageFile;
DWORDLONG ullAvailPageFile;
DWORDLONG ullTotalVirtual;
DWORDLONG ullAvailVirtual;
DWORDLONG ullAvailExtendedVirtual;
} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;*/
var MEMORYSTATUSEX = new CLibStruct("int","int","int64","int64","int64","int64","int64","int64","int64");
/**
typedef struct _PDH_FMT_COUNTERVALUE {
DWORD CStatus;
union {
LONG longValue;
double doubleValue;