mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 19:59:28 +02:00
adjust flight times correctly in stats tracking
This commit is contained in:
parent
bfbaf265dd
commit
72649f1ac9
4 changed files with 12 additions and 11 deletions
|
@ -4237,15 +4237,15 @@ void Application::trackIncomingVoxelPacket(unsigned char* messageData, ssize_t m
|
||||||
const HifiSockAddr& senderSockAddr, bool wasStatsPacket) {
|
const HifiSockAddr& senderSockAddr, bool wasStatsPacket) {
|
||||||
|
|
||||||
// Attempt to identify the sender from it's address.
|
// Attempt to identify the sender from it's address.
|
||||||
Node* voxelServer = NodeList::getInstance()->nodeWithAddress(senderSockAddr);
|
Node* serverNode = NodeList::getInstance()->nodeWithAddress(senderSockAddr);
|
||||||
if (voxelServer) {
|
if (serverNode) {
|
||||||
QUuid nodeUUID = voxelServer->getUUID();
|
QUuid nodeUUID = serverNode->getUUID();
|
||||||
|
|
||||||
// now that we know the node ID, let's add these stats to the stats for that node...
|
// now that we know the node ID, let's add these stats to the stats for that node...
|
||||||
_voxelSceneStatsLock.lockForWrite();
|
_voxelSceneStatsLock.lockForWrite();
|
||||||
if (_octreeServerSceneStats.find(nodeUUID) != _octreeServerSceneStats.end()) {
|
if (_octreeServerSceneStats.find(nodeUUID) != _octreeServerSceneStats.end()) {
|
||||||
VoxelSceneStats& stats = _octreeServerSceneStats[nodeUUID];
|
VoxelSceneStats& stats = _octreeServerSceneStats[nodeUUID];
|
||||||
stats.trackIncomingOctreePacket(messageData, messageLength, wasStatsPacket);
|
stats.trackIncomingOctreePacket(messageData, messageLength, wasStatsPacket, serverNode->getClockSkewUsec());
|
||||||
}
|
}
|
||||||
_voxelSceneStatsLock.unlock();
|
_voxelSceneStatsLock.unlock();
|
||||||
}
|
}
|
||||||
|
|
|
@ -345,11 +345,10 @@ void VoxelStatsDialog::showOctreeServersOfType(int& serverCount, NODE_TYPE serve
|
||||||
QString incomingOutOfOrderString = locale.toString((uint)stats.getIncomingOutOfOrder());
|
QString incomingOutOfOrderString = locale.toString((uint)stats.getIncomingOutOfOrder());
|
||||||
QString incomingLikelyLostString = locale.toString((uint)stats.getIncomingLikelyLost());
|
QString incomingLikelyLostString = locale.toString((uint)stats.getIncomingLikelyLost());
|
||||||
|
|
||||||
float clockSkewInMS = (float)node->getClockSkewUsec() / (float)USECS_PER_MSEC;
|
int clockSkewInMS = node->getClockSkewUsec() / (int)USECS_PER_MSEC;
|
||||||
float adjustedFlightTime = stats.getIncomingFlightTimeAverage() + clockSkewInMS;
|
QString incomingFlightTimeString = locale.toString((int)stats.getIncomingFlightTimeAverage());
|
||||||
QString incomingFlightTimeString = locale.toString((int)adjustedFlightTime);
|
|
||||||
QString incomingPingTimeString = locale.toString(node->getPingMs());
|
QString incomingPingTimeString = locale.toString(node->getPingMs());
|
||||||
QString incomingClockSkewString = locale.toString((int)clockSkewInMS);
|
QString incomingClockSkewString = locale.toString(clockSkewInMS);
|
||||||
|
|
||||||
serverDetails << "<br/>" << "Incoming Packets: " <<
|
serverDetails << "<br/>" << "Incoming Packets: " <<
|
||||||
incomingPacketsString.toLocal8Bit().constData() <<
|
incomingPacketsString.toLocal8Bit().constData() <<
|
||||||
|
|
|
@ -798,7 +798,8 @@ const char* OctreeSceneStats::getItemValue(Item item) {
|
||||||
return _itemValueBuffer;
|
return _itemValueBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OctreeSceneStats::trackIncomingOctreePacket(unsigned char* messageData, ssize_t messageLength, bool wasStatsPacket) {
|
void OctreeSceneStats::trackIncomingOctreePacket(unsigned char* messageData, ssize_t messageLength,
|
||||||
|
bool wasStatsPacket, int nodeClockSkewUsec) {
|
||||||
_incomingPacket++;
|
_incomingPacket++;
|
||||||
_incomingBytes += messageLength;
|
_incomingBytes += messageLength;
|
||||||
if (!wasStatsPacket) {
|
if (!wasStatsPacket) {
|
||||||
|
@ -820,7 +821,7 @@ void OctreeSceneStats::trackIncomingOctreePacket(unsigned char* messageData, ssi
|
||||||
//bool packetIsCompressed = oneAtBit(flags, PACKET_IS_COMPRESSED_BIT);
|
//bool packetIsCompressed = oneAtBit(flags, PACKET_IS_COMPRESSED_BIT);
|
||||||
|
|
||||||
OCTREE_PACKET_SENT_TIME arrivedAt = usecTimestampNow();
|
OCTREE_PACKET_SENT_TIME arrivedAt = usecTimestampNow();
|
||||||
int flightTime = arrivedAt - sentAt;
|
int flightTime = arrivedAt - sentAt + nodeClockSkewUsec;
|
||||||
const int USECS_PER_MSEC = 1000;
|
const int USECS_PER_MSEC = 1000;
|
||||||
float flightTimeMsecs = flightTime / USECS_PER_MSEC;
|
float flightTimeMsecs = flightTime / USECS_PER_MSEC;
|
||||||
_incomingFlightTimeAverage.updateAverage(flightTimeMsecs);
|
_incomingFlightTimeAverage.updateAverage(flightTimeMsecs);
|
||||||
|
|
|
@ -153,7 +153,8 @@ public:
|
||||||
unsigned long getLastFullElapsedTime() const { return _lastFullElapsed; }
|
unsigned long getLastFullElapsedTime() const { return _lastFullElapsed; }
|
||||||
|
|
||||||
// Used in client implementations to track individual octree packets
|
// Used in client implementations to track individual octree packets
|
||||||
void trackIncomingOctreePacket(unsigned char* messageData, ssize_t messageLength, bool wasStatsPacket);
|
void trackIncomingOctreePacket(unsigned char* messageData, ssize_t messageLength,
|
||||||
|
bool wasStatsPacket, int nodeClockSkewUsec);
|
||||||
|
|
||||||
unsigned int getIncomingPackets() const { return _incomingPacket; }
|
unsigned int getIncomingPackets() const { return _incomingPacket; }
|
||||||
unsigned long getIncomingBytes() const { return _incomingBytes; }
|
unsigned long getIncomingBytes() const { return _incomingBytes; }
|
||||||
|
|
Loading…
Reference in a new issue