Added instrumentation code for dispatch analysis (define LogEvents 1 to activate)
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@2446 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 63d9d95f0ea406dcc809f5b019fd457737e6575b Former-commit-id: 5b670841ac54160e44efcb1a64e1bf2759e8a98b
This commit is contained in:
parent
0deb06506e
commit
98d04eaaa3
1 changed files with 52 additions and 0 deletions
|
@ -41,6 +41,46 @@
|
||||||
#include "raceengine.h"
|
#include "raceengine.h"
|
||||||
|
|
||||||
|
|
||||||
|
// Small event log system for ReUpdate/ReOneStep dispatching analysis.
|
||||||
|
#define LogEvents 0
|
||||||
|
|
||||||
|
#if (LogEvents)
|
||||||
|
# define DeclareEventType(name) \
|
||||||
|
static int nLast##name = 0; \
|
||||||
|
static int nPrev##name = 0; \
|
||||||
|
static double tLast##name = 0.0; \
|
||||||
|
static double tPrev##name = 0.0;
|
||||||
|
#else
|
||||||
|
# define DeclareEventType(name)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (LogEvents)
|
||||||
|
# define SignalEvent(name) \
|
||||||
|
nLast##name++; \
|
||||||
|
tLast##name = GfTimeClock();
|
||||||
|
#else
|
||||||
|
# define SignalEvent(name)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (LogEvents)
|
||||||
|
# define PrintEvent(name, header, footer) \
|
||||||
|
if (header) GfOut(header); \
|
||||||
|
if (tPrev##name == 0.0) tPrev##name = tLast##name; \
|
||||||
|
GfOut("%s %2d %5.1f ", #name, nLast##name - nPrev##name, (tLast##name - tPrev##name)*1000); \
|
||||||
|
nPrev##name = nLast##name; \
|
||||||
|
tPrev##name = tLast##name; \
|
||||||
|
if (footer) GfOut(footer);
|
||||||
|
#else
|
||||||
|
# define PrintEvent(name, header, footer)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//DeclareEventType(Update);
|
||||||
|
//DeclareEventType(OneStep);
|
||||||
|
DeclareEventType(Robots);
|
||||||
|
DeclareEventType(Simu);
|
||||||
|
DeclareEventType(Graphic);
|
||||||
|
|
||||||
|
|
||||||
static char buf[1024];
|
static char buf[1024];
|
||||||
static char bestLapChanged = FALSE;
|
static char bestLapChanged = FALSE;
|
||||||
static double msgDisp;
|
static double msgDisp;
|
||||||
|
@ -811,6 +851,8 @@ ReOneStep(double deltaTimeIncrement)
|
||||||
tRobotItf *robot;
|
tRobotItf *robot;
|
||||||
tSituation *s = ReInfo->s;
|
tSituation *s = ReInfo->s;
|
||||||
|
|
||||||
|
//SignalEvent(OneStep);
|
||||||
|
|
||||||
if (GetNetwork())
|
if (GetNetwork())
|
||||||
{
|
{
|
||||||
//Resync clock in case computer falls behind
|
//Resync clock in case computer falls behind
|
||||||
|
@ -854,6 +896,7 @@ ReOneStep(double deltaTimeIncrement)
|
||||||
|
|
||||||
START_PROFILE("rbDrive*");
|
START_PROFILE("rbDrive*");
|
||||||
if ((s->currentTime - ReInfo->_reLastTime) >= RCM_MAX_DT_ROBOTS) {
|
if ((s->currentTime - ReInfo->_reLastTime) >= RCM_MAX_DT_ROBOTS) {
|
||||||
|
SignalEvent(Robots);
|
||||||
s->deltaTime = s->currentTime - ReInfo->_reLastTime;
|
s->deltaTime = s->currentTime - ReInfo->_reLastTime;
|
||||||
for (i = 0; i < s->_ncars; i++) {
|
for (i = 0; i < s->_ncars; i++) {
|
||||||
if ((s->cars[i]->_state & RM_CAR_STATE_NO_SIMU) == 0) {
|
if ((s->cars[i]->_state & RM_CAR_STATE_NO_SIMU) == 0) {
|
||||||
|
@ -878,6 +921,7 @@ ReOneStep(double deltaTimeIncrement)
|
||||||
NetworkPlayStep();
|
NetworkPlayStep();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SignalEvent(Simu);
|
||||||
START_PROFILE("_reSimItf.update*");
|
START_PROFILE("_reSimItf.update*");
|
||||||
ReInfo->_reSimItf.update(s, deltaTimeIncrement, -1);
|
ReInfo->_reSimItf.update(s, deltaTimeIncrement, -1);
|
||||||
for (i = 0; i < s->_ncars; i++) {
|
for (i = 0; i < s->_ncars; i++) {
|
||||||
|
@ -952,6 +996,7 @@ ReUpdate(void)
|
||||||
case RM_DISP_MODE_NORMAL:
|
case RM_DISP_MODE_NORMAL:
|
||||||
t = GfTimeClock();
|
t = GfTimeClock();
|
||||||
|
|
||||||
|
//SignalEvent(Update);
|
||||||
START_PROFILE("ReOneStep*");
|
START_PROFILE("ReOneStep*");
|
||||||
while (ReInfo->_reRunning && ((t - ReInfo->_reCurTime) > RCM_MAX_DT_SIMU)) {
|
while (ReInfo->_reRunning && ((t - ReInfo->_reCurTime) > RCM_MAX_DT_SIMU)) {
|
||||||
ReOneStep(RCM_MAX_DT_SIMU);
|
ReOneStep(RCM_MAX_DT_SIMU);
|
||||||
|
@ -963,8 +1008,15 @@ ReUpdate(void)
|
||||||
GetNetwork()->SendCarControlsPacket(ReInfo->s);
|
GetNetwork()->SendCarControlsPacket(ReInfo->s);
|
||||||
|
|
||||||
GfuiDisplay();
|
GfuiDisplay();
|
||||||
|
SignalEvent(Graphic);
|
||||||
ReInfo->_reGraphicItf.refresh(ReInfo->s);
|
ReInfo->_reGraphicItf.refresh(ReInfo->s);
|
||||||
GfelPostRedisplay(); /* Callback -> reDisplay */
|
GfelPostRedisplay(); /* Callback -> reDisplay */
|
||||||
|
|
||||||
|
//PrintEvent(Update, "Events: ", 0);
|
||||||
|
//PrintEvent(OneStep, 0, 0);
|
||||||
|
PrintEvent(Robots, "Events: ", 0);
|
||||||
|
PrintEvent(Simu, 0, 0);
|
||||||
|
PrintEvent(Graphic, 0, "\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RM_DISP_MODE_NONE:
|
case RM_DISP_MODE_NONE:
|
||||||
|
|
Loading…
Reference in a new issue