IntervalBudget主要用于按照一定的碼率控制數(shù)據(jù)在時間上的分配絮识,保存著這波發(fā)送應(yīng)該有多少資源要發(fā)送,實際上他并不能控制這一波能發(fā)送多少嗽上,只能控制如果上N波發(fā)送的數(shù)據(jù)過多的話次舌,把這一波的數(shù)據(jù)消耗完了,那么這一波就不發(fā)送了兽愤,
主要接口:
void IncreaseBudget(int64_t delta_time_ms):每次發(fā)送數(shù)據(jù)時彼念,計算距離上次發(fā)送的時間間隔,結(jié)果乘以碼率就是這段時間內(nèi)新增的資源浅萧,如果上一次發(fā)多了逐沙,就用這次的資源補(bǔ)上,但是如果上一次發(fā)少了洼畅,這次不會過多發(fā)吩案。
void UseBudget(size_t bytes):這一波消耗了多少資源,最后剩下的資源會有一個極限帝簇,不能過度消耗500ms的資源
size_t bytes_remaining() const:這一波過后還剩下多少資源