计算一段时间内的平均丢包率

时间:2015-04-05 18:46:02

标签: c++ math average

所以我想计算一下我的应用程序中的平均丢包率(以包的数量)(例如,过去5秒)

我有检测数据包丢失的代码,它执行以下行:

playerRef->AveragePacketLossOverFiveSeconds += packetDiff; // Adds the number of packets lost to the average (a double)

以下是我目前如何随时间衰退:

 double ratio = 0.0002f * m_totalTimeSpentLastTick; // because I want it to be an average over the last 5 seconds 
 playerToUpdate->AveragePacketLossOverFiveSeconds -= playerToUpdate->AveragePacketLossOverFiveSeconds * ratio;     

我知道代码不完全正确。它在测试时给出了相对较好的值,但是比实际值更高(因为它不会随着时间的推移而正确衰减。)

我的问题是:是否有办法修复此代码,以便我不需要使用列表和其他更复杂的东西?我知道我可以,例如,只是制作数据包丢失对象,时间戳它们,将它们放在一个列表中,然后通过删除超过5秒的那些然后平均剩余的那些来衰减列表,但我认为有一种更简单的方法

非常感谢你的时间!

0 个答案:

没有答案