Prhub

#26232 [SRT] minor: reuse req input id array for unpadded ids

原始 PR 作者 mickqian 合并时间 2026-05-26 08:58 文件变更 1 提交数 1 评论 1 代码增减 +5 / -3

执行摘要

复用 origin_input_ids 避免重复内存分配

在常见的请求构造路径中,origin_input_ids_unpaddedorigin_input_ids 值相同,但原代码会重复调用 array("q", ...) 创建两个相同的数组,造成不必要的内存分配。PR 描述明确说明 'Avoid a duplicate array("q") conversion/allocation for the common request construction path.'

该 PR 属于代码整洁性改进,逻辑简单,风险低,适合快速合入。对于关注性能细节的读者,可借此了解常见请求路径下的小型内存优化手法。

讨论亮点

只有自动机器人 gemini-code-assist[bot] 发表了评论,确认无其他审查反馈。无人工 reviewer 介入讨论。

实现拆解

  1. 调整 Req.__init__ 中赋值顺序:先初始化 self.origin_input_idsarray("q", origin_input_ids)
  2. 条件式赋值 self.origin_input_ids_unpadded:仅当 origin_input_ids_unpadded 参数为非空时才创建新数组;否则直接引用 self.origin_input_ids
  3. 移除原代码中的无条件 array("q", origin_input_ids_unpadded or origin_input_ids) 调用,从而在常见路径下减少一次数组构造。
文件 模块 状态 重要度
python/sglang/srt/managers/schedule_batch.py 调度器 modified 4.97

关键符号

Req.__init__

关键源码片段

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

该文件是唯一变更文件,核心修改了 Req 类的构造函数,优化了 origin_input_ids_unpadded 的初始化逻辑。

# python/sglang/srt/managers/schedule_batch.py
# 修改前后对比(仅展示关键部分)class Req:
    def __init__(self, ..., origin_input_ids, origin_input_ids_unpadded=None, ...):
        # 先创建 origin_input_ids 数组
        self.origin_input_ids = array("q", origin_input_ids)
        # 仅在提供了独立的 unpadded id 时才创建新数组,否则直接复用 origin_input_ids
        self.origin_input_ids_unpadded = (
            array("q", origin_input_ids_unpadded)
            if origin_input_ids_unpadded
            else self.origin_input_ids
        ) # Before image padding
        # 其余初始化保持不变 ...

评论区精华

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

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

风险与影响

变更范围极小(仅 8 行),且逻辑保持等价——当 origin_input_ids_unpaddedNone 时,新代码直接复用 self.origin_input_ids 对象,而非创建新数组。由于 origin_input_ids_unpadded 在使用上仅为读取(注释 # Before image padding 表明其用于图像填充前的 id 序列),不存在后续修改导致意外共享的问题。风险很低。

影响范围:仅 Req.__init__ 构造路径,对下游逻辑无直接功能影响。性能上,在无图像填充的常见请求(即 origin_input_ids_unpaddedNone 时)可减少一次内存分配。由于该构造路径在高并发下频繁触发,积累的分配开销降低可能带来轻微性能提升。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论