a8/a8/perfmonitor.h
aozhiwei 71fcbd8bc5 1
2024-09-26 15:09:12 +08:00

36 lines
802 B
C++

#pragma once
#include <a8/singleton.h>
namespace a8
{
class PerfMonitor : public a8::Singleton<PerfMonitor>
{
private:
PerfMonitor();
friend class a8::Singleton<PerfMonitor>;
public:
void Init();
void UnInit();
long long AddV(const std::string key, long long val);
long long SubV(const std::string key, long long val);
void SetV(const std::string key, long long val);
long long GetV(const std::string key);
void Dump();
public:
long long send_eagain_times = 0;
long long recv_eagain_times = 0;
long long max_send_time = 0;
long long max_recv_time = 0;
private:
std::shared_ptr<std::mutex> mutex_;
std::map<std::string, long long> dyn_hash_;
};
}