added some stats for the random drops

This commit is contained in:
Brad Hefta-Gaub 2017-02-22 23:28:40 -08:00
parent 06f0087459
commit 40037bee55
3 changed files with 20 additions and 4 deletions

View file

@ -506,6 +506,9 @@ void AvatarMixer::sendStatsPacket() {
float averageOthersIncluded = averageNodes ? stats.numOthersIncluded / averageNodes : 0.0f;
slaveObject["sent_6_averageOthersIncluded"] = TIGHT_LOOP_STAT(averageOthersIncluded);
float averageRandomDrops = averageNodes ? stats.randomDrops / averageNodes : 0.0f;
slaveObject["sent_7_averageRandomDrops"] = TIGHT_LOOP_STAT(averageRandomDrops);
slaveObject["timing_1_processIncomingPackets"] = TIGHT_LOOP_STAT_UINT64(stats.processIncomingPacketsElapsedTime);
slaveObject["timing_2_ignoreCalculation"] = TIGHT_LOOP_STAT_UINT64(stats.ignoreCalculationElapsedTime);
slaveObject["timing_3_toByteArray"] = TIGHT_LOOP_STAT_UINT64(stats.toByteArrayElapsedTime);
@ -533,9 +536,12 @@ void AvatarMixer::sendStatsPacket() {
float averageOutboundAvatarKbps = averageNodes ? ((aggregateStats.numBytesSent / secondsSinceLastStats) / BYTES_PER_KILOBIT) / averageNodes : 0.0f;
slavesAggregatObject["sent_5_averageOutboundAvatarKbps"] = averageOutboundAvatarKbps;
float averageRandomDrops = averageNodes ? aggregateStats.randomDrops / averageNodes : 0.0f;
slavesAggregatObject["sent_7_averageRandomDrops"] = TIGHT_LOOP_STAT(averageRandomDrops);
float averageOthersIncluded = averageNodes ? aggregateStats.numOthersIncluded / averageNodes : 0.0f;
slavesAggregatObject["sent_6_averageOthersIncluded"] = TIGHT_LOOP_STAT(averageOthersIncluded);
slavesAggregatObject["timing_1_processIncomingPackets"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.processIncomingPacketsElapsedTime);
slavesAggregatObject["timing_2_ignoreCalculation"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.ignoreCalculationElapsedTime);
slavesAggregatObject["timing_3_toByteArray"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.toByteArrayElapsedTime);

View file

@ -332,15 +332,19 @@ void AvatarMixerSlave::broadcastAvatarData(const SharedNodePointer& node) {
//
// NOTE: If the recieving node is in "PAL mode" then it's asked to get things even that
// are out of view, this also appears to disable this random distribution.
//
// FIXME - This approach for managing the outbound bandwidth is less than ideal,
// it would be better to more directly budget the number of bytes to send
// per frame and simply exit the sorted avatar list once that budget is
// surpassed. We will work on that next. [BHG 2/22/17]
if (distanceToAvatar != 0.0f
&& !getsOutOfView
&& distribution(generator) > (nodeData->getFullRateDistance() / distanceToAvatar) /// FIX ME... we don't want to do this random stuff
&& distribution(generator) > (nodeData->getFullRateDistance() / distanceToAvatar)
) {
quint64 endAvatarDataPacking = usecTimestampNow();
_stats.avatarDataPackingElapsedTime += (endAvatarDataPacking - startAvatarDataPacking);
shouldConsider = false;
//qDebug() << "shouldConsider = false ... line:" << __LINE__;
_stats.randomDrops++;
}
if (shouldConsider) {

View file

@ -25,6 +25,8 @@ public:
int numBytesSent { 0 };
int numIdentityPackets { 0 };
int numOthersIncluded { 0 };
int randomDrops { 0 };
quint64 ignoreCalculationElapsedTime { 0 };
quint64 avatarDataPackingElapsedTime { 0 };
quint64 packetSendingElapsedTime { 0 };
@ -43,6 +45,8 @@ public:
numBytesSent = 0;
numIdentityPackets = 0;
numOthersIncluded = 0;
randomDrops = 0;
ignoreCalculationElapsedTime = 0;
avatarDataPackingElapsedTime = 0;
packetSendingElapsedTime = 0;
@ -60,6 +64,8 @@ public:
numBytesSent += rhs.numBytesSent;
numIdentityPackets += rhs.numIdentityPackets;
numOthersIncluded += rhs.numOthersIncluded;
randomDrops += rhs.randomDrops;
ignoreCalculationElapsedTime += rhs.ignoreCalculationElapsedTime;
avatarDataPackingElapsedTime += rhs.avatarDataPackingElapsedTime;
packetSendingElapsedTime += rhs.packetSendingElapsedTime;