From 923e1ed208936788deeb33e98bf4bf699e715a56 Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Thu, 15 Oct 2015 12:21:36 -0700 Subject: [PATCH] add more processing stats --- interface/src/ui/OctreeStatsDialog.cpp | 31 ++++++++++++++++++++++---- interface/src/ui/OctreeStatsDialog.h | 3 ++- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/interface/src/ui/OctreeStatsDialog.cpp b/interface/src/ui/OctreeStatsDialog.cpp index d3ff017633..42f31f8b1e 100644 --- a/interface/src/ui/OctreeStatsDialog.cpp +++ b/interface/src/ui/OctreeStatsDialog.cpp @@ -54,11 +54,13 @@ OctreeStatsDialog::OctreeStatsDialog(QWidget* parent, NodeToOctreeSceneStats* mo _localElementsMemory = AddStatItem("Elements Memory"); _sendingMode = AddStatItem("Sending Mode"); - _processedPackets = AddStatItem("Entity Packets"); + _processedPackets = AddStatItem("Incoming Entity Packets"); _processedPacketsElements = AddStatItem("Processed Packets Elements"); _processedPacketsEntities = AddStatItem("Processed Packets Entities"); _processedPacketsTiming = AddStatItem("Processed Packets Timing"); + _outboundEditPackets = AddStatItem("Outbound Entity Packets"); + _entityUpdateTime = AddStatItem("Entity Update Time"); _entityUpdates = AddStatItem("Entity Updates"); @@ -266,6 +268,7 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) { label = _labels[_processedPackets]; const OctreePacketProcessor& entitiesPacketProcessor = qApp->getOctreePacketProcessor(); + auto incomingPacketsDepth = entitiesPacketProcessor.packetsToProcessCount(); auto incomingPPS = entitiesPacketProcessor.getIncomingPPS(); auto processedPPS = entitiesPacketProcessor.getProcessedPPS(); auto treeProcessedPPS = entities->getAveragePacketsPerSecond(); @@ -276,6 +279,7 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) { statsValue.str(""); statsValue << + "Queue Size: " << incomingPacketsDepth << " Packets / " << "Network IN: " << qPrintable(incomingPPSString) << " PPS / " << "Queue OUT: " << qPrintable(processedPPSString) << " PPS / " << "Tree IN: " << qPrintable(treeProcessedPPSString) << " PPS"; @@ -301,12 +305,31 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) { label = _labels[_processedPacketsTiming]; statsValue.str(""); statsValue << - "Lock Wait:" << qPrintable(averageWaitLockPerPacketString) << " (usecs) / " << - "Uncompress:" << qPrintable(averageUncompressPerPacketString) << " (usecs) / " << - "Process:" << qPrintable(averageReadBitstreamPerPacketString) << " (usecs)"; + "Lock Wait: " << qPrintable(averageWaitLockPerPacketString) << " (usecs) / " << + "Uncompress: " << qPrintable(averageUncompressPerPacketString) << " (usecs) / " << + "Process: " << qPrintable(averageReadBitstreamPerPacketString) << " (usecs)"; label->setText(statsValue.str().c_str()); + auto entitiesEditPacketSender = qApp->getEntityEditPacketSender(); + + auto outboundPacketsDepth = entitiesEditPacketSender->packetsToSendCount(); + auto outboundQueuedPPS = entitiesEditPacketSender->getLifetimePPSQueued(); + auto outboundSentPPS = entitiesEditPacketSender->getLifetimePPS(); + + QString outboundQueuedPPSString = locale.toString(outboundQueuedPPS, 'f', FLOATING_POINT_PRECISION); + QString outboundSentPPSString = locale.toString(outboundSentPPS, 'f', FLOATING_POINT_PRECISION); + + label = _labels[_outboundEditPackets]; + statsValue.str(""); + statsValue << + "Queue Size: " << outboundPacketsDepth << " packets / " << + "Queued IN: " << qPrintable(outboundQueuedPPSString) << " PPS / " << + "Sent OUT: " << qPrintable(outboundSentPPSString) << " PPS"; + + label->setText(statsValue.str().c_str()); + + // Entity Edits update time label = _labels[_entityUpdateTime]; auto averageEditDelta = entitiesTree->getAverageEditDeltas(); diff --git a/interface/src/ui/OctreeStatsDialog.h b/interface/src/ui/OctreeStatsDialog.h index 063c04b295..97f87849ec 100644 --- a/interface/src/ui/OctreeStatsDialog.h +++ b/interface/src/ui/OctreeStatsDialog.h @@ -70,10 +70,11 @@ private: int _processedPacketsElements; int _processedPacketsEntities; int _processedPacketsTiming; + int _outboundEditPackets; const int SAMPLES_PER_SECOND = 10; SimpleMovingAverage _averageUpdatesPerSecond; - quint64 _lastWindowAt = 0; + quint64 _lastWindowAt = usecTimestampNow(); quint64 _lastKnownTrackedEdits = 0; quint64 _lastRefresh = 0;