Skip to content

性能回归:低线程数/老平台 CPU 吞吐严重倒退(i3-10105 复现) #7

Description

@unknowbug

复现环境与数据(来自轩某Rikka,2026-08-06,B 站对话记录)

  • CPU: i3-10105(4C8T,无大小核)/ GPU: 1660s / 内存分配: 8G
  • coreswap-1.0.7 + starlight-1.1.2;对照 c2me-fabric-0.2.0+alpha.11.18 + starlight + zfastnoise
  • Chunky-1.3.146,半径 650 区块生成,总用时:
方案 总用时
vanilla 0:02:42
c2me 0:02:10
coreswap 0:06:59

初步分析(待验证)

默认线程数 = hardware_concurrency() = 8(逻辑线程),在 4 物理核(SMT)上存在过分配嫌疑:

  1. SMT 执行单元争抢:8 线程抢 4 个物理核的 ALU/FPU 端口,计算密集负载下 SMT 收益通常仅 1.1-1.3x,有时为负
  2. thread_local 缓存翻倍:每线程一份缓存,8 份挤进 6MB L3,命中率崩
  3. 内存带宽短板:双通道 DDR4-2666,带宽约为 Zen4/DDR5 平台一半,噪声采样密集访存先饱和

另:Intel 混合架构(12 代+,如 14650HX)的 E 核拖累可能是同一机制的另一表现(E 核无超线程、性能约为 P 核 60-70%)。

验证实验(进行中)

  • -Dcoreswap.threads=4 重测
  • -Dcoreswap.threads=2 重测

修复方向

  • 默认线程数改为 min(物理核数, 任务数)(而非逻辑线程数)
  • 或启动时微基准自适应定线程数
  • 对混合架构:仅统计 P 核(GetLogicalProcessorInformationEx 可区分 P/E 核)

关联:#6(原报告,因骚扰关闭);B 站实测:视频 BV1fmuJ65EUq

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