ADD: lastip

This commit is contained in:
Kolyah35
2026-03-15 20:54:28 +03:00
parent fadcf3a7d0
commit a50877af9e
7 changed files with 66 additions and 55 deletions

View File

@@ -10,12 +10,12 @@
#define TIMER_PUSH(x) PerfTimer::push(x)
#define TIMER_POP() PerfTimer::pop()
#define TIMER_POP_PUSH(x) PerfTimer::popPush(x)
#elif defined(SERVER_PROFILER)
#include "ServerProfiler.h"
// #elif defined(SERVER_PROFILER)
// #include "ServerProfiler.h"
#define TIMER_PUSH(x) ServerProfiler::push(x)
#define TIMER_POP() ServerProfiler::pop()
#define TIMER_POP_PUSH(x) ServerProfiler::popPush(x)
// #define TIMER_PUSH(x) ServerProfiler::push(x)
// #define TIMER_POP() ServerProfiler::pop()
// #define TIMER_POP_PUSH(x) ServerProfiler::popPush(x)
#else
#define TIMER_PUSH(x) ((void*)0)
#define TIMER_POP() ((void*)0)

View File

@@ -1,4 +1,4 @@
#include "ServerProfiler.h"
// #include "ServerProfiler.h"
std::stack<ServerProfiler::Entry> ServerProfiler::stack;
std::unordered_map<std::string, double> ServerProfiler::times;
// std::stack<ServerProfiler::Entry> ServerProfiler::stack;
// std::unordered_map<std::string, double> ServerProfiler::times;

View File

@@ -1,43 +1,43 @@
#pragma once
// #pragma once
#include <chrono>
#include <ratio>
#include <iostream>
#include <string>
#include <unordered_map>
#include <stack>
// #include <chrono>
// #include <ratio>
// #include <iostream>
// #include <string>
// #include <unordered_map>
// #include <stack>
namespace ServerProfiler {
using clock = std::chrono::high_resolution_clock;
// namespace ServerProfiler {
// using clock = std::chrono::high_resolution_clock;
struct Entry {
std::string name;
clock::time_point start;
};
// struct Entry {
// std::string name;
// clock::time_point start;
// };
static std::stack<Entry> stack;
static std::unordered_map<std::string, double> times;
// static std::stack<Entry> stack;
// static std::unordered_map<std::string, double> times;
inline void push(const std::string& name) {
stack.push({name, clock::now()});
}
// inline void push(const std::string& name) {
// stack.push({name, clock::now()});
// }
inline void pop() {
auto end = clock::now();
auto e = stack.top();
stack.pop();
// inline void pop() {
// auto end = clock::now();
// auto e = stack.top();
// stack.pop();
double dt = std::chrono::duration<double, std::micro>(end - e.start).count();
times[e.name] += dt;
}
// double dt = std::chrono::duration<double, std::micro>(end - e.start).count();
// times[e.name] += dt;
// }
inline void popPush(const std::string& name) {
pop(); push(name);
}
// inline void popPush(const std::string& name) {
// pop(); push(name);
// }
inline void report() {
for (auto& it : times) {
std::cout << "[PROFILER] " << it.first << ": " << it.second << std::endl;
}
}
};
// inline void report() {
// for (auto& it : times) {
// std::cout << "[PROFILER] " << it.first << ": " << it.second << std::endl;
// }
// }
// };