add perfmonitor
This commit is contained in:
parent
f402a38a41
commit
1ea33dd844
@ -112,7 +112,7 @@ void IMConn::on_disconnect(a8::AsyncTcpClient* sender)
|
||||
void IMConn::on_socketread(a8::AsyncTcpClient* sender, char* buf, unsigned int len)
|
||||
{
|
||||
#if 0
|
||||
++App::Instance()->perf.read_count;
|
||||
++PerfMonitor::Instance()->read_count;
|
||||
#endif
|
||||
if (recv_bufflen_ + len > 2 * PACK_MAX) {
|
||||
recv_bufflen_ = 0;
|
||||
|
@ -112,7 +112,7 @@ void MSConn::on_disconnect(a8::AsyncTcpClient* sender)
|
||||
void MSConn::on_socketread(a8::AsyncTcpClient* sender, char* buf, unsigned int len)
|
||||
{
|
||||
#if 0
|
||||
++App::Instance()->perf.read_count;
|
||||
++PerfMonitor::Instance()->read_count;
|
||||
#endif
|
||||
if (recv_bufflen_ + len > 2 * PACK_MAX) {
|
||||
recv_bufflen_ = 0;
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "playermgr.h"
|
||||
#include "groupmgr.h"
|
||||
#include "dbengine.h"
|
||||
#include "perfmonitor.h"
|
||||
|
||||
#include "MSConnMgr.h"
|
||||
#include "IMConnMgr.h"
|
||||
@ -56,14 +57,14 @@ static void SavePerfLog()
|
||||
"in_data_size:%d out_data_size:%d msgnode_size:%d read_count:%d max_login_time:%d "
|
||||
"max_join_time:%d",
|
||||
{
|
||||
App::Instance()->perf.max_run_delay_time,
|
||||
App::Instance()->perf.max_timer_idle,
|
||||
App::Instance()->perf.in_data_size,
|
||||
App::Instance()->perf.out_data_size,
|
||||
PerfMonitor::Instance()->max_run_delay_time,
|
||||
PerfMonitor::Instance()->max_timer_idle,
|
||||
PerfMonitor::Instance()->in_data_size,
|
||||
PerfMonitor::Instance()->out_data_size,
|
||||
App::Instance()->msgnode_size_,
|
||||
App::Instance()->perf.read_count,
|
||||
App::Instance()->perf.max_login_time,
|
||||
App::Instance()->perf.max_join_time,
|
||||
PerfMonitor::Instance()->read_count,
|
||||
PerfMonitor::Instance()->max_login_time,
|
||||
PerfMonitor::Instance()->max_join_time,
|
||||
});
|
||||
a8::UdpLog::Instance()->Info(" run_times:%d timer_times:%d event_times:%d free_times:%d "
|
||||
" shutdown_times:%d connect_times:%d close_times:%d "
|
||||
@ -81,14 +82,10 @@ static void SavePerfLog()
|
||||
(long long)a8::IoLoop::Instance()->error_times,
|
||||
(long long)a8::IoLoop::Instance()->immsg_times
|
||||
});
|
||||
#if 1
|
||||
App::Instance()->perf.max_run_delay_time = 0;
|
||||
App::Instance()->perf.max_timer_idle = 0;
|
||||
App::Instance()->perf.max_login_time = 0;
|
||||
App::Instance()->perf.max_join_time = 0;
|
||||
#else
|
||||
App::Instance()->perf = PerfMonitor();
|
||||
#endif
|
||||
PerfMonitor::Instance()->max_run_delay_time = 0;
|
||||
PerfMonitor::Instance()->max_timer_idle = 0;
|
||||
PerfMonitor::Instance()->max_login_time = 0;
|
||||
PerfMonitor::Instance()->max_join_time = 0;
|
||||
}
|
||||
|
||||
bool App::Init(int argc, char* argv[])
|
||||
@ -213,8 +210,8 @@ int App::Run()
|
||||
QuickExecute();
|
||||
SlowerExecute();
|
||||
a8::tick_t end_tick = a8::XGetTickCount();
|
||||
if (end_tick - begin_tick > perf.max_run_delay_time) {
|
||||
perf.max_run_delay_time = end_tick - begin_tick;
|
||||
if (end_tick - begin_tick > PerfMonitor::Instance()->max_run_delay_time) {
|
||||
PerfMonitor::Instance()->max_run_delay_time = end_tick - begin_tick;
|
||||
}
|
||||
Schedule();
|
||||
}
|
||||
@ -296,8 +293,8 @@ void App::Schedule()
|
||||
if (!HasTask()) {
|
||||
int sleep_time = a8::Timer::Instance()->GetIdleableMillSeconds();
|
||||
loop_cond_->wait_for(lk, std::chrono::milliseconds(sleep_time));
|
||||
if (sleep_time > perf.max_timer_idle) {
|
||||
perf.max_timer_idle = sleep_time;
|
||||
if (sleep_time > PerfMonitor::Instance()->max_timer_idle) {
|
||||
PerfMonitor::Instance()->max_timer_idle = sleep_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -61,7 +61,6 @@ private:
|
||||
volatile bool terminated = false;
|
||||
volatile bool shutdowned = false;
|
||||
std::set<int> flags;
|
||||
PerfMonitor perf;
|
||||
a8::uuid::SnowFlake uuid;
|
||||
|
||||
public:
|
||||
|
13
server/imserver/perfmonitor.cc
Normal file
13
server/imserver/perfmonitor.cc
Normal file
@ -0,0 +1,13 @@
|
||||
#include "precompile.h"
|
||||
|
||||
#include "perfmonitor.h"
|
||||
|
||||
void PerfMonitor::Init()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void PerfMonitor::UnInit()
|
||||
{
|
||||
|
||||
}
|
21
server/imserver/perfmonitor.h
Normal file
21
server/imserver/perfmonitor.h
Normal file
@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
class PerfMonitor : public a8::Singleton<PerfMonitor>
|
||||
{
|
||||
private:
|
||||
PerfMonitor() {};
|
||||
friend class a8::Singleton<PerfMonitor>;
|
||||
|
||||
public:
|
||||
int max_run_delay_time = 0;
|
||||
int max_dispatchmsg_time = 0;
|
||||
int max_timer_idle = 0;
|
||||
long long max_login_time = 0;
|
||||
long long max_join_time = 0;
|
||||
long long out_data_size = 0;
|
||||
long long in_data_size = 0;
|
||||
long long read_count = 0;
|
||||
|
||||
void Init();
|
||||
void UnInit();
|
||||
};
|
@ -1,17 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
struct PerfMonitor
|
||||
{
|
||||
int max_run_delay_time = 0;
|
||||
int max_dispatchmsg_time = 0;
|
||||
int max_timer_idle = 0;
|
||||
long long max_login_time = 0;
|
||||
long long max_join_time = 0;
|
||||
long long out_data_size = 0;
|
||||
long long in_data_size = 0;
|
||||
long long read_count = 0;
|
||||
};
|
||||
|
||||
struct Friend
|
||||
{
|
||||
std::string account_id;
|
||||
|
2
third_party/a8engine
vendored
2
third_party/a8engine
vendored
@ -1 +1 @@
|
||||
Subproject commit c6c7cb379e997ce3808edff38e822eda3da19915
|
||||
Subproject commit d73ff7eb0c53e6d93db95b14d0fb5945fae24649
|
2
third_party/framework
vendored
2
third_party/framework
vendored
@ -1 +1 @@
|
||||
Subproject commit 4e1a34704dc08d0279e78c275989f10f85fd6cc2
|
||||
Subproject commit 6a5392433ccd85ffbfea9a904fde0f5bae22c155
|
Loading…
x
Reference in New Issue
Block a user