返回

文章详情

uv: 去重所有轮子缓存中的文件

Hacker News2026年8月31日 06:03

## 摘要 当内容哈希启用时,我们目前为每个在流式提取过程中复制和哈希的文件分配并清零一个新的 64 KiB 缓冲区。这个 PR 改为在整个轮子中重用一个缓冲区。对于基准测试中使用的 PyTorch 轮子,这将哈希的缓冲区分配减少从 11,120 到一个,同时保持每个活动轮子的缓冲区大小为 64 KiB。以下测量比较了在 `a188b8e833aef3c3b4b60a32ed9fafe6ac74186a` 上的 #21327 和在其上应用此优化的情况,然后再将更改移动到 `main`。这些不是针对 `main` 的测量。 Linux 基准测试交替使用基础和候选版本,使用通过本地 HTTP 提供的固定轮子,并启用内容地址缓存: | 冷安装 | #21327 | #21327 + 缓冲区重用 | 变化 | | --- | ---: | ---: | ---: | | AnyIO | 110 毫秒 | 107 毫秒 | -2.6% | | SymPy | 845 毫秒 | 775 毫秒 | -8.3% | | NumPy | 627 毫秒 | 567 毫秒 | -9.5% | | PyTorch CPU | 6.50 秒 | 5.99 秒 | -7.8% | | 14 包环境,4 并发 | 6.95 秒 | 6.47 秒 | -7.0% | 以上各个结果使用了 16 轮配对;完整环境使用 12。AnyIO、SymPy 和 NumPy 在初始的 20 对运行后被重复测试:初始的 AnyIO 时间波动较大,而初始的 SymPy 和 NumPy 改进分别为 7.8% 和 6.9%。所有原始样本都被保留。缓存安装和本地轮子控件显示没有一致的变化。在初始运行、重复测试和控件中,我们测量了 672 次安装,排除了预热和缓存引导。共同作者:Charlie Marsh <charlie.r.marsh@gmail.com>

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡