内存使用情况

来源:互联网 发布:如何进行数据分析 编辑:程序博客网 时间:2024/06/15 23:10
#pragma onceclass SetSize_Timer: public ITimerSink{public:SetSize_Timer(long _delay_time, long _interval_time);virtual ~SetSize_Timer();// 定时器回调virtual void on_time(long _user_sign);};

#include "stdafx.h"#include "App_Server.h"#include "SetSize_Timer.h"#include "..//Game_Module//Time_Axis.h"#include "..//Game_Server_killerDlg.h"#include <psapi.h>   #pragma comment(lib,"psapi.lib") SetSize_Timer::SetSize_Timer(long _delay_time, long _interval_time){ App_Server::get_time_axis()->set_time_tgr(this, 1, _delay_time, _interval_time); App_Server::get_delete_proxy()->push_single( this );}SetSize_Timer::~SetSize_Timer(){ App_Server::get_delete_proxy()->pop( this );App_Server::get_time_axis()->kill_time_tgr(this, 1); }// 定时器回调void SetSize_Timer::on_time(long _user_sign){static long  time_count = 1;static DWORD sum_WorkingSetSize = 0;static DWORD sum_PeakWorkingSetSize = 0;static DWORD old_WorkingSetSize = 0;static DWORD old_PeakWorkingSetSize = 0;TCHAR num[64];CString text = _T("");_ltow(time_count, num, 10);text += num;text += '\n';PROCESS_MEMORY_COUNTERS pmc;HANDLE handle = GetCurrentProcess();  GetProcessMemoryInfo(handle,&pmc,sizeof(pmc));  DWORD cur_WorkingSetSize = pmc.WorkingSetSize/1024;_ltow(cur_WorkingSetSize, num, 10);text += "内存使用: ";text += num;text += "K\n";DWORD cur_PeakWorkingSetSize = pmc.PeakWorkingSetSize/1024;_ltow(cur_PeakWorkingSetSize, num, 10);text += "峰值内存: ";text += num;text += "K\n";if( old_WorkingSetSize != cur_WorkingSetSize || old_PeakWorkingSetSize != cur_PeakWorkingSetSize) {++time_count;long dt_WorkingSetSize = cur_WorkingSetSize - old_WorkingSetSize;_ltow(dt_WorkingSetSize, num, 10);if( dt_WorkingSetSize >= 0)text += "+ 内存使用较上一次增长量: ";elsetext += "- 内存使用较上一次增长量: ";text += num;text += "K\n";long dt_PeakWorkingSetSize = cur_PeakWorkingSetSize - old_PeakWorkingSetSize;_ltow(dt_PeakWorkingSetSize, num, 10);if( dt_PeakWorkingSetSize >= 0)text += "+ 峰值内存较上一次增长量: ";elsetext += "- 峰值内存较上一次增长量: ";text += num;text += "K\n";sum_WorkingSetSize = sum_WorkingSetSize + dt_WorkingSetSize;_ltow(sum_WorkingSetSize, num, 10);text += "内存使用总增长: ";text += num;text += "K\n";sum_PeakWorkingSetSize = sum_PeakWorkingSetSize + dt_PeakWorkingSetSize;_ltow(sum_PeakWorkingSetSize, num, 10);text += "峰值内存总增长: ";text += num;text += "K\n";old_WorkingSetSize = cur_WorkingSetSize;old_PeakWorkingSetSize = cur_PeakWorkingSetSize;App_Server::get_log_trace()->print(Module_Name::Set_Size, text.GetBuffer());}}

原创粉丝点击