mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
Merge pull request #470 from CiMaWi/pmon-improvements
Performance Monitor Improvements
This commit is contained in:
@@ -78,13 +78,13 @@ void PerformanceMonitor::PrintStats(bool perTick, bool fullStack)
|
||||
switch (i->first)
|
||||
{
|
||||
case PERF_MON_TRIGGER:
|
||||
key = "T";
|
||||
key = "Trigger";
|
||||
break;
|
||||
case PERF_MON_VALUE:
|
||||
key = "V";
|
||||
key = "Value";
|
||||
break;
|
||||
case PERF_MON_ACTION:
|
||||
key = "A";
|
||||
key = "Action";
|
||||
break;
|
||||
case PERF_MON_RNDBOT:
|
||||
key = "RndBot";
|
||||
@@ -152,8 +152,8 @@ void PerformanceMonitor::PrintStats(bool perTick, bool fullStack)
|
||||
}
|
||||
else
|
||||
{
|
||||
float fullTickCount = data[PERF_MON_TOTAL]["RandomPlayerbotMgr::FullTick"]->count;
|
||||
float fullTickTotalTime = data[PERF_MON_TOTAL]["RandomPlayerbotMgr::FullTick"]->totalTime;
|
||||
float fullTickCount = data[PERF_MON_TOTAL]["PlayerbotAIBase::FullTick"]->count;
|
||||
float fullTickTotalTime = data[PERF_MON_TOTAL]["PlayerbotAIBase::FullTick"]->totalTime;
|
||||
|
||||
LOG_INFO(
|
||||
"playerbots",
|
||||
@@ -173,13 +173,13 @@ void PerformanceMonitor::PrintStats(bool perTick, bool fullStack)
|
||||
switch (i->first)
|
||||
{
|
||||
case PERF_MON_TRIGGER:
|
||||
key = "T";
|
||||
key = "Trigger";
|
||||
break;
|
||||
case PERF_MON_VALUE:
|
||||
key = "V";
|
||||
key = "Value";
|
||||
break;
|
||||
case PERF_MON_ACTION:
|
||||
key = "A";
|
||||
key = "Action";
|
||||
break;
|
||||
case PERF_MON_RNDBOT:
|
||||
key = "RndBot";
|
||||
@@ -231,7 +231,7 @@ void PerformanceMonitor::PrintStats(bool perTick, bool fullStack)
|
||||
time, minTime, maxTime, avg, amount, key.c_str(), disName.c_str());
|
||||
}
|
||||
}
|
||||
if (PERF_MON_TOTAL != i->first)
|
||||
if (i->first != PERF_MON_TOTAL)
|
||||
{
|
||||
float tPerc = (float)typeTotalTime / (float)fullTickTotalTime * 100.0f;
|
||||
float tTime = (float)typeTotalTime / fullTickCount / 1000.0f;
|
||||
@@ -278,7 +278,7 @@ void PerformanceMonitorOperation::finish()
|
||||
std::chrono::microseconds finished =
|
||||
(std::chrono::time_point_cast<std::chrono::microseconds>(std::chrono::high_resolution_clock::now()))
|
||||
.time_since_epoch();
|
||||
uint64_t elapsed = (finished - started).count();
|
||||
uint64 elapsed = (finished - started).count();
|
||||
|
||||
std::lock_guard<std::mutex> guard(data->lock);
|
||||
if (elapsed > 0)
|
||||
|
||||
@@ -11,6 +11,11 @@ PlayerbotAIBase::PlayerbotAIBase(bool isBotAI) : nextAICheckDelay(0), _isBotAI(i
|
||||
|
||||
void PlayerbotAIBase::UpdateAI(uint32 elapsed, bool minimal)
|
||||
{
|
||||
if (totalPmo)
|
||||
totalPmo->finish();
|
||||
|
||||
totalPmo = sPerformanceMonitor->start(PERF_MON_TOTAL, "PlayerbotAIBase::FullTick");
|
||||
|
||||
if (nextAICheckDelay > elapsed)
|
||||
nextAICheckDelay -= elapsed;
|
||||
else
|
||||
|
||||
@@ -24,6 +24,7 @@ public:
|
||||
|
||||
protected:
|
||||
uint32 nextAICheckDelay;
|
||||
class PerformanceMonitorOperation* totalPmo = nullptr;
|
||||
|
||||
private:
|
||||
bool _isBotAI;
|
||||
|
||||
@@ -153,7 +153,7 @@ double botPIDImpl::calculate(double setpoint, double pv)
|
||||
|
||||
botPIDImpl::~botPIDImpl() {}
|
||||
|
||||
RandomPlayerbotMgr::RandomPlayerbotMgr() : PlayerbotHolder(), processTicks(0), totalPmo(nullptr)
|
||||
RandomPlayerbotMgr::RandomPlayerbotMgr() : PlayerbotHolder(), processTicks(0)
|
||||
{
|
||||
playersLevel = sPlayerbotAIConfig->randombotStartingLevel;
|
||||
|
||||
|
||||
@@ -204,9 +204,8 @@ private:
|
||||
std::list<uint32> currentBots;
|
||||
uint32 bgBotsCount;
|
||||
uint32 playersLevel;
|
||||
PerformanceMonitorOperation* totalPmo;
|
||||
};
|
||||
|
||||
#define sRandomPlayerbotMgr RandomPlayerbotMgr::instance()
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -83,6 +83,16 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!strcmp(args, "toggle"))
|
||||
{
|
||||
sPlayerbotAIConfig->perfMonEnabled = !sPlayerbotAIConfig->perfMonEnabled;
|
||||
if (sPlayerbotAIConfig->perfMonEnabled)
|
||||
LOG_INFO("playerbots", "Performance monitor enabled");
|
||||
else
|
||||
LOG_INFO("playerbots", "Performance monitor disabled");
|
||||
return true;
|
||||
}
|
||||
|
||||
sPerformanceMonitor->PrintStats();
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user