Procházet zdrojové kódy

tune: ignore sub-millisecond write jitter in TX late detection

tags/v0.9.0
Jan před 1 měsícem
rodič
revize
7d0efe3a38
1 změnil soubory, kde provedl 5 přidání a 3 odebrání
  1. +5
    -3
      internal/app/engine.go

+ 5
- 3
internal/app/engine.go Zobrazit soubor

@@ -112,6 +112,7 @@ type RuntimeTransition struct {

const (
lateBufferIndicatorWindow = 5 * time.Second
writeLateTolerance = 1 * time.Millisecond
queueCriticalStreakThreshold = 3
queueMutedStreakThreshold = queueCriticalStreakThreshold * 2
queueMutedRecoveryThreshold = queueCriticalStreakThreshold
@@ -588,12 +589,13 @@ func (e *Engine) writerLoop(ctx context.Context) {
queueStats := e.frameQueue.Stats()
e.evaluateRuntimeState(queueStats, e.hasRecentLateBuffers())

if writeDur > e.chunkDuration {
lateOver := writeDur - e.chunkDuration
if lateOver > writeLateTolerance {
late := e.lateBuffers.Add(1)
e.lateBufferAlertAt.Store(uint64(time.Now().UnixNano()))
if late <= 5 || late%20 == 0 {
log.Printf("TX LATE: write=%s budget=%s over=%s queueResidence=%s pipeline=%s",
writeDur, e.chunkDuration, writeDur-e.chunkDuration, queueResidence, pipelineLatency)
log.Printf("TX LATE: write=%s budget=%s over=%s tolerance=%s queueResidence=%s pipeline=%s",
writeDur, e.chunkDuration, lateOver, writeLateTolerance, queueResidence, pipelineLatency)
}
}



Načítá se…
Zrušit
Uložit