Prhub

#25432 Remove dead self.adder/can_run_list/running_bs writes in Scheduler._get_new_batch_prefill_raw

原始 PR 作者 fzyzcjy 合并时间 2026-05-16 09:12 文件变更 1 提交数 1 评论 1 代码增减 +0 / -5

执行摘要

清理调度器中的死代码赋值

PR 描述指出:这些写操作用于捕获局部 prefill builder 状态供其他读取者使用,但整个代码库中已无任何地方读取 self.adderself.can_run_listself.running_bs。它们是旧的临时存储,已被 new_batch.prefill_stats = PrefillStats.from_adder(adder, ...) 替代。删除它们可以消除死代码,提高可维护性。

该 PR 是低风险的清理工作,无需深入审查。但可作为理解 Scheduler 中 prefill 统计信息演进历史的参考:从 self.adder 等临时存储迁移到 new_batch.prefill_stats 对象化。

讨论亮点

该 PR 的 review 评论数量为 0,提交历史仅 1 个 commit,无讨论。作者 fzyzcjy 同时也是合并者,表明这是一个自审查的机械式清理变更。

实现拆解

  1. python/sglang/srt/managers/scheduler.pyScheduler._get_new_batch_prefill_raw 方法末尾,定位到三行 self.adder = adderself.can_run_list = can_run_listself.running_bs = len(self.running_batch.reqs) 的赋值语句。
  2. 通过全仓 grep 确认无任何其他代码读取这三个属性,确认其已死。
  3. 直接删除这三行代码(共 5 行,含注释),其余逻辑保持不变。
  4. 未引入任何测试变更,因为删除死代码无需新增测试。
文件 模块 状态 重要度
python/sglang/srt/managers/scheduler.py 调度器 modified 4.57

关键符号

Scheduler._get_new_batch_prefill_raw

关键源码片段

python/sglang/srt/managers/scheduler.py core-logic

唯一变更文件,删除了 `_get_new_batch_prefill_raw` 方法末尾的三行死代码赋值。

# 以下为变更前代码(删除的三行)
# 注释 : 之前用于记录 prefill 统计信息,现已无读者
# self.adder = adder
# self.can_run_list = can_run_list
# self.running_bs = len(self.running_batch.reqs)# 清理后,prefill 统计信息已通过以下方式附加到 batch 上 :
new_batch.prefill_stats = PrefillStats.from_adder(
    adder,
    self.running_batch.reqs,
    self.enable_priority_scheduling,
    num_pending_tokens=self._get_num_pending_tokens(...)
)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。删除的代码是已无读者的写操作,不影响任何读取路径。但若未来有其他代码误引这些属性,可能会出现 AttributeError。不过由于这些属性从未被正式定义为类属性,之前也只是在方法内赋值,因此即使保留也极易被遗忘。总体风险可忽略。

影响范围仅限于 python/sglang/srt/managers/scheduler.py 中的一个方法,删除 5 行代码。无功能影响、无性能影响、无 API 变更。对用户透明,对开发者仅意味着少维护一些死代码。

极小变更

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论