mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 17:24:24 +02:00
add packets per second to octree processing stats
This commit is contained in:
parent
2aa345dfc6
commit
40cdd8646e
4 changed files with 22 additions and 0 deletions
|
@ -53,6 +53,7 @@ OctreeStatsDialog::OctreeStatsDialog(QWidget* parent, NodeToOctreeSceneStats* mo
|
||||||
_localElementsMemory = AddStatItem("Elements Memory");
|
_localElementsMemory = AddStatItem("Elements Memory");
|
||||||
_sendingMode = AddStatItem("Sending Mode");
|
_sendingMode = AddStatItem("Sending Mode");
|
||||||
|
|
||||||
|
_processedPackets = AddStatItem("Processed Packets");
|
||||||
_processedPacketsElements = AddStatItem("Processed Packets Elements");
|
_processedPacketsElements = AddStatItem("Processed Packets Elements");
|
||||||
_processedPacketsEntities = AddStatItem("Processed Packets Entities");
|
_processedPacketsEntities = AddStatItem("Processed Packets Entities");
|
||||||
_processedPacketsTiming = AddStatItem("Processed Packets Timing");
|
_processedPacketsTiming = AddStatItem("Processed Packets Timing");
|
||||||
|
@ -219,6 +220,8 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) {
|
||||||
// Processed Packets Elements
|
// Processed Packets Elements
|
||||||
auto averageElementsPerPacket = entities->getAverageElementsPerPacket();
|
auto averageElementsPerPacket = entities->getAverageElementsPerPacket();
|
||||||
auto averageEntitiesPerPacket = entities->getAverageEntitiesPerPacket();
|
auto averageEntitiesPerPacket = entities->getAverageEntitiesPerPacket();
|
||||||
|
|
||||||
|
auto averagePacketsPerSecond = entities->getAveragePacketsPerSecond();
|
||||||
auto averageElementsPerSecond = entities->getAverageElementsPerSecond();
|
auto averageElementsPerSecond = entities->getAverageElementsPerSecond();
|
||||||
auto averageEntitiesPerSecond = entities->getAverageEntitiesPerSecond();
|
auto averageEntitiesPerSecond = entities->getAverageEntitiesPerSecond();
|
||||||
|
|
||||||
|
@ -228,6 +231,8 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) {
|
||||||
|
|
||||||
QString averageElementsPerPacketString = locale.toString(averageElementsPerPacket);
|
QString averageElementsPerPacketString = locale.toString(averageElementsPerPacket);
|
||||||
QString averageEntitiesPerPacketString = locale.toString(averageEntitiesPerPacket);
|
QString averageEntitiesPerPacketString = locale.toString(averageEntitiesPerPacket);
|
||||||
|
|
||||||
|
QString averagePacketsPerSecondString = locale.toString(averagePacketsPerSecond);
|
||||||
QString averageElementsPerSecondString = locale.toString(averageElementsPerSecond);
|
QString averageElementsPerSecondString = locale.toString(averageElementsPerSecond);
|
||||||
QString averageEntitiesPerSecondString = locale.toString(averageEntitiesPerSecond);
|
QString averageEntitiesPerSecondString = locale.toString(averageEntitiesPerSecond);
|
||||||
|
|
||||||
|
@ -235,6 +240,13 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) {
|
||||||
QString averageUncompressPerPacketString = locale.toString(averageUncompressPerPacket);
|
QString averageUncompressPerPacketString = locale.toString(averageUncompressPerPacket);
|
||||||
QString averageReadBitstreamPerPacketString = locale.toString(averageReadBitstreamPerPacket);
|
QString averageReadBitstreamPerPacketString = locale.toString(averageReadBitstreamPerPacket);
|
||||||
|
|
||||||
|
label = _labels[_processedPackets];
|
||||||
|
statsValue.str("");
|
||||||
|
statsValue <<
|
||||||
|
"" << qPrintable(averagePacketsPerSecondString) << " per second";
|
||||||
|
|
||||||
|
label->setText(statsValue.str().c_str());
|
||||||
|
|
||||||
label = _labels[_processedPacketsElements];
|
label = _labels[_processedPacketsElements];
|
||||||
statsValue.str("");
|
statsValue.str("");
|
||||||
statsValue <<
|
statsValue <<
|
||||||
|
|
|
@ -66,6 +66,7 @@ private:
|
||||||
|
|
||||||
int _entityUpdateTime;
|
int _entityUpdateTime;
|
||||||
int _entityUpdates;
|
int _entityUpdates;
|
||||||
|
int _processedPackets;
|
||||||
int _processedPacketsElements;
|
int _processedPacketsElements;
|
||||||
int _processedPacketsEntities;
|
int _processedPacketsEntities;
|
||||||
int _processedPacketsTiming;
|
int _processedPacketsTiming;
|
||||||
|
|
|
@ -101,6 +101,8 @@ void OctreeRenderer::processDatagram(const QByteArray& dataByteArray, const Shar
|
||||||
sequence, flightTime, packetLength, dataBytes);
|
sequence, flightTime, packetLength, dataBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_packetsInLastWindow++;
|
||||||
|
|
||||||
int elementsPerPacket = 0;
|
int elementsPerPacket = 0;
|
||||||
int entitiesPerPacket = 0;
|
int entitiesPerPacket = 0;
|
||||||
|
|
||||||
|
@ -185,12 +187,15 @@ void OctreeRenderer::processDatagram(const QByteArray& dataByteArray, const Shar
|
||||||
|
|
||||||
const quint64 USECS_PER_SECOND = 1000 * 1000;
|
const quint64 USECS_PER_SECOND = 1000 * 1000;
|
||||||
if (sinceLastWindow > USECS_PER_SECOND) {
|
if (sinceLastWindow > USECS_PER_SECOND) {
|
||||||
|
float packetsPerSecondInWindow = (float)_packetsInLastWindow / (float)(sinceLastWindow / USECS_PER_SECOND);
|
||||||
float elementsPerSecondInWindow = (float)_elementsInLastWindow / (float)(sinceLastWindow / USECS_PER_SECOND);
|
float elementsPerSecondInWindow = (float)_elementsInLastWindow / (float)(sinceLastWindow / USECS_PER_SECOND);
|
||||||
float entitiesPerSecondInWindow = (float)_entitiesInLastWindow / (float)(sinceLastWindow / USECS_PER_SECOND);
|
float entitiesPerSecondInWindow = (float)_entitiesInLastWindow / (float)(sinceLastWindow / USECS_PER_SECOND);
|
||||||
|
_packetsPerSecond.updateAverage(packetsPerSecondInWindow);
|
||||||
_elementsPerSecond.updateAverage(elementsPerSecondInWindow);
|
_elementsPerSecond.updateAverage(elementsPerSecondInWindow);
|
||||||
_entitiesPerSecond.updateAverage(entitiesPerSecondInWindow);
|
_entitiesPerSecond.updateAverage(entitiesPerSecondInWindow);
|
||||||
|
|
||||||
_lastWindowAt = now;
|
_lastWindowAt = now;
|
||||||
|
_packetsInLastWindow = 0;
|
||||||
_elementsInLastWindow = 0;
|
_elementsInLastWindow = 0;
|
||||||
_entitiesInLastWindow = 0;
|
_entitiesInLastWindow = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,6 +64,7 @@ public:
|
||||||
float getAverageElementsPerPacket() const { return _elementsPerPacket.getAverage(); }
|
float getAverageElementsPerPacket() const { return _elementsPerPacket.getAverage(); }
|
||||||
float getAverageEntitiesPerPacket() const { return _entitiesPerPacket.getAverage(); }
|
float getAverageEntitiesPerPacket() const { return _entitiesPerPacket.getAverage(); }
|
||||||
|
|
||||||
|
float getAveragePacketsPerSecond() const { return _packetsPerSecond.getAverage(); }
|
||||||
float getAverageElementsPerSecond() const { return _elementsPerSecond.getAverage(); }
|
float getAverageElementsPerSecond() const { return _elementsPerSecond.getAverage(); }
|
||||||
float getAverageEntitiesPerSecond() const { return _entitiesPerSecond.getAverage(); }
|
float getAverageEntitiesPerSecond() const { return _entitiesPerSecond.getAverage(); }
|
||||||
|
|
||||||
|
@ -80,6 +81,8 @@ protected:
|
||||||
|
|
||||||
SimpleMovingAverage _elementsPerPacket;
|
SimpleMovingAverage _elementsPerPacket;
|
||||||
SimpleMovingAverage _entitiesPerPacket;
|
SimpleMovingAverage _entitiesPerPacket;
|
||||||
|
|
||||||
|
SimpleMovingAverage _packetsPerSecond;
|
||||||
SimpleMovingAverage _elementsPerSecond;
|
SimpleMovingAverage _elementsPerSecond;
|
||||||
SimpleMovingAverage _entitiesPerSecond;
|
SimpleMovingAverage _entitiesPerSecond;
|
||||||
|
|
||||||
|
@ -88,6 +91,7 @@ protected:
|
||||||
SimpleMovingAverage _readBitstreamPerPacket;
|
SimpleMovingAverage _readBitstreamPerPacket;
|
||||||
|
|
||||||
quint64 _lastWindowAt = 0;
|
quint64 _lastWindowAt = 0;
|
||||||
|
int _packetsInLastWindow = 0;
|
||||||
int _elementsInLastWindow = 0;
|
int _elementsInLastWindow = 0;
|
||||||
int _entitiesInLastWindow = 0;
|
int _entitiesInLastWindow = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue