Skip to content

[Test]: Stabilize zero-allocation envelope reader gate across isolated runners #140

Description

@SunSi12138

现象

SharpLink.UnitTests.Server.ServerRequestEnvelopeReaderTests.ReadSteadyStateWithoutOptionalFieldsShouldAllocateNothing 在受控的远端 Release 测试环境中偶发报告极小分配,即使代码基线也会复现。

已确认的证据

在 192.168.31.242、.NET 10、固定 CPU 4–15、flock 串行、相同短 TMPDIR / DOTNET_CLI_HOME 下:

  • dev@2af21dc2ad340b398bf3a9f208c28058111df820:目标测试失败,40 bytes over 20000 calls
  • refactor(runtime): add dispatcher detach completion #136 候选 ed140b46f490947f9d9a686aaa27b42d3acc3b8a:同一目标测试同样失败,40 bytes over 20000 calls
  • 候选随后完整 Unit 重跑通过,820/820

候选与基线在该 Server envelope reader 路径没有源码差异;#136 只改动 stream dispatcher 生命周期。因此这不是 #136 的性能回归,但当前断言/预热或测量隔离存在非确定性。

期望

  • 找出这 40B 的来源,或让测量在真正稳态后、以不掩盖真实回归的方式确定化;
  • 保持真实零分配门禁,不以任意阈值或重试掩盖回归;
  • 在同一进程和隔离进程中反复运行目标测试都稳定;
  • 记录在 CI/远端门禁中应如何处理已证实的基线波动。

非目标

不把这个测试问题混入 Phase 14/#136 的功能改动。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions