#pragma once
class 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 += "+ 内存使用较上一次增长量: ";
else
text += "- 内存使用较上一次增长量: ";
text += num;
text += "K\n";
long dt_PeakWorkingSetSize = cur_PeakWorkingSetSize - old_PeakWorkingSetSize;
_ltow(dt_PeakWorkingSetSize, num, 10);
if( dt_PeakWorkingSetSize >= 0)
text += "+ 峰值内存较上一次增长量: ";
else
text += "- 峰值内存较上一次增长量: ";
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());
}
}