1、测试部署程序的时候,经常要监控开发程序的内存使用情况,一直盯着太累,使用操作系统提供的内存监控,又不会使用。。。
2、在win7下,要看提交内存的占用大小;在server下,要看虚拟内存占用大小;
至于为什么建议问下度娘,这只是本人的看法
Release目录下有可执行程序,可以不需要安装vc6编译,但需要vc的runtime
3、vc6完整工程代码下载地址 (代码有debug,下载后按照后续内容替换)
4、欢迎大家评论
问题
2017年7月26日10:09:02
在vc6编译器中,调试正常,运行可执行程序时,打开system进程时,无法打开
原因:服务方式程序时,程序的创建者为SYSTEM用户;非SYSTEM用户调用OpenProcess访问该服务程序时,调用失败,GetLastError返回5。需要提升权限,
由于csdn上传的资源不能删除。所以整理贴出更新文件的内容。下载csdn资源后,打开对应的文件,使用下面的内容进行全部替换即可
// RecordMemUsedDlg.h : header file
//
#if !defined(AFX_RECORDMEMUSEDDLG_H__175975E3_C7A4_4D57_8F22_6673EE9E8DDC__INCLUDED_)
#define AFX_RECORDMEMUSEDDLG_H__175975E3_C7A4_4D57_8F22_6673EE9E8DDC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/
// CRecordMemUsedDlg dialog
#include <fstream>
using namespace std;
class CRecordMemUsedDlg : public CDialog
{
// Construction
public:
CRecordMemUsedDlg(CWnd* pParent = NULL); // standard constructor
void GetSystemUsed();
BOOL GetMemoryUsed(unsigned iPID);
void PutPutFile();
void stopTimer();
void startTimer();
bool AdjustPrivileges();//提权
ofstream m_ofile; //定义输出文件
// Dialog Data
//{
{AFX_DATA(CRecordMemUsedDlg)
enum { IDD = IDD_RECORDMEMUSED_DIALOG };
int m_iTotalMemory; //保存内存 M
int m_iUsedMemory; //保存已使用内存M
UINT m_iPID;
int m_WorkingSetSize;//进程使用的内存
int m_PagefileUsage;//虚拟内存()
int m_QuotaPagedPoolUsage;//使用页面缓存池
int m_QuotaNonPagedPoolUsage;//使用非页面缓存池
UINT m_iSpan;
unsigned TIMERID;//Timer ID
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{
{AFX_VIRTUAL(CRecordMemUsedDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX);