← 弹幕排布:让滚动评论互不重叠 / 选轨与降级:first-fit、丢弃、排队、叠加 待审核 4 / 4
first-fit · 降级

选轨与降级:first-fit、丢弃、排队、叠加

轨道分配的常规策略是自上而下取第一条可用轨道 (top-down first-fit):简单、稳定,且让弹幕尽量靠上、视线集中。真正体现产品取舍的是所有轨道都放不下时怎么办——这在弹幕高峰(热门直播、名场面)必然发生。三种主流降级:丢弃 (drop) 直接不显示、排队 (queue) 等下一条空轨道、叠加 (stack) 强行压上去(半透明)。本页可调到达率把轨道打满,实时对比三者。

丢弃:总量恒定、画面永远清爽,代价是高峰期大量弹幕看不到(直播常用)。排队:不丢,但延迟显示、积压会越滚越多。叠加:全都显示,但高峰期重叠压字、可读性下降。调大「每秒弹幕」越过轨道容量,三者差异立刻显现。

1 · 选轨为什么默认 top-down first-fit

可用轨道往往不止一条,选哪条是个策略。first-fit(取最靠上的可用轨道) 让弹幕聚拢在视线集中的上方、分布稳定、实现 O(轨道数)O(轨道数),是绝大多数引擎的默认。其他选法各有取向:随机轨道分散更均匀但抖动大;best-fit(挑最空的轨道) 让间距更均衡却要维护更多状态。多数场景里 first-fit 的简单与稳定足够好。

2 · 降级:满载时的产品取舍

三种降级各占一角:全显示、清爽、低延迟难以兼得,按产品目标取舍。
策略 是否全显示 画面是否清爽 代价 典型场景
丢弃 drop 高峰丢弃大量弹幕 高并发直播
排队 queue 是 (延迟) 积压、延迟越滚越大 点播 / 可容忍延迟
叠加 stack 重叠压字、可读性降 追求「弹幕量感」

实时(直播)与离线(点播)的根本差异在这里放大:点播已知全部弹幕时间轴,可全局预排、seek 后精确恢复;直播是流式到达,只能贪心地来一条排一条,降级(尤其丢弃 / 限流)不可避免。无论哪种,底层判定都建立在前面几页的入场追及规则之上。