Adjusting wireless profiler code

This commit is contained in:
Rodrigo Alfonso
2025-01-13 03:13:16 -03:00
parent 63958e12e7
commit 4c2784aef7
2 changed files with 29 additions and 44 deletions

View File

@@ -280,15 +280,10 @@ void messageLoop() {
u32 lastLostPacketReceived = 0;
u32 lastLostPacketReceivedPacketId = 0;
#else
u32 vblanks = 0;
u32 totalVBlankTime = 0;
u32 totalSerialTime = 0;
u32 totalTimerTime = 0;
u32 totalSerialIRQs = 0;
u32 totalTimerIRQs = 0;
u32 avgVBlankTime = 0;
u32 avgSerialTime = 0;
u32 avgTimerTime = 0;
u32 avgTime = 0;
u32 avgSerialIRQs = 0;
u32 avgTimerIRQs = 0;
#endif
@@ -390,26 +385,22 @@ void messageLoop() {
// Normal output
#ifdef PROFILING_ENABLED
vblanks++;
totalVBlankTime += linkWireless->lastVBlankTime;
totalSerialTime += linkWireless->lastSerialTime;
totalTimerTime += linkWireless->lastTimerTime;
totalSerialIRQs += linkWireless->lastFrameSerialIRQs;
totalTimerIRQs += linkWireless->lastFrameTimerIRQs;
if (linkWireless->vblankIRQs >= 60) {
avgVBlankTime = linkWireless->vblankTime / 60;
avgSerialTime = linkWireless->serialTime / 60;
avgTimerTime = linkWireless->timerTime / 60;
avgSerialIRQs = linkWireless->serialIRQs / 60;
avgTimerIRQs = linkWireless->timerIRQs / 60;
avgTime = (linkWireless->vblankTime + linkWireless->serialTime +
linkWireless->timerTime) /
60;
if (vblanks >= 60) {
avgVBlankTime = totalVBlankTime / 60;
avgSerialTime = totalSerialTime / 60;
avgTimerTime = totalTimerTime / 60;
avgSerialIRQs = totalSerialIRQs / 60;
avgTimerIRQs = totalTimerIRQs / 60;
vblanks = 0;
totalVBlankTime = 0;
totalSerialTime = 0;
totalTimerTime = 0;
totalSerialIRQs = 0;
totalTimerIRQs = 0;
linkWireless->vblankIRQs = 0;
linkWireless->vblankTime = 0;
linkWireless->serialTime = 0;
linkWireless->timerTime = 0;
linkWireless->serialIRQs = 0;
linkWireless->timerIRQs = 0;
}
#endif
std::string output =
@@ -460,9 +451,7 @@ void messageLoop() {
output += "\n_onTimer: " + std::to_string(avgTimerTime);
output += "\n_serialIRQs: " + std::to_string(avgSerialIRQs);
output += "\n_timerIRQs: " + std::to_string(avgTimerIRQs);
output += "\n_ms: " + std::to_string(linkWireless->toMs(
avgVBlankTime + avgSerialTime * avgSerialIRQs +
avgTimerTime * avgTimerIRQs));
output += "\n_ms: " + std::to_string(linkWireless->toMs(avgTime));
#else
if (lostPackets > 0) {
output += "\n\n_lostPackets: " + std::to_string(lostPackets) + "\n";

View File

@@ -229,13 +229,12 @@ class LinkWireless {
// std::function<void(std::string str)> debug;
// #define PROFILING_ENABLED
#ifdef PROFILING_ENABLED
u32 lastVBlankTime = 0;
u32 lastSerialTime = 0;
u32 lastTimerTime = 0;
u32 lastFrameSerialIRQs = 0;
u32 lastFrameTimerIRQs = 0;
u32 serialIRQCount = 0;
u32 timerIRQCount = 0;
u32 vblankTime = 0;
u32 serialTime = 0;
u32 timerTime = 0;
u32 vblankIRQs = 0;
u32 serialIRQs = 0;
u32 timerIRQs = 0;
#endif
enum State {
@@ -854,11 +853,8 @@ class LinkWireless {
sessionState.pingSent = false;
#ifdef PROFILING_ENABLED
lastVBlankTime = profileStop();
lastFrameSerialIRQs = serialIRQCount;
lastFrameTimerIRQs = timerIRQCount;
serialIRQCount = 0;
timerIRQCount = 0;
vblankTime += profileStop();
vblankIRQs++;
#endif
}
@@ -908,8 +904,8 @@ class LinkWireless {
}
#ifdef PROFILING_ENABLED
lastSerialTime = profileStop();
serialIRQCount++;
serialTime += profileStop();
serialIRQs++;
#endif
}
@@ -932,8 +928,8 @@ class LinkWireless {
acceptConnectionsOrTransferData();
#ifdef PROFILING_ENABLED
lastTimerTime = profileStop();
timerIRQCount++;
timerTime += profileStop();
timerIRQs++;
#endif
}