所以我想计算一下我的应用程序中的平均丢包率(以包的数量)(例如,过去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秒的那些然后平均剩余的那些来衰减列表,但我认为有一种更简单的方法
非常感谢你的时间!