composer无多线程模式,并行下载实为并发http请求;确认是否生效须看composer install -vvv日志中是否多行downloading同时出现或进度跳变,且版本需≥2.1、禁用hirak/prestissimo、配置http-max-concurrent-downloads=8、换阿里云镜像并清缓存。

Composer 没有多线程模式,也不存在“启用插件极速部署”这种一劳永逸的方案。所谓“并行下载”本质是并发 HTTP 请求,不是系统级多线程;强行装 hirak/prestissimo 或调错配置项,反而会触发 file_put_contents(/tmp/): failed to open stream、静默降级为串行,甚至破坏 composer.lock 结构。
怎么确认并行下载真在跑
不看配置有没有写,只看 composer install -vvv 实时日志:
- 如果同时出现多行
Downloading https://mirrors.aliyun.com/...,或进度从(3/42)跳到(11/42)这类明显跳变,说明并发请求池已激活 - 如果始终只有一条
Downloading在动、CPU 占用低、网络连接数极少,那并发实际被阻塞——大概率是镜像响应慢、DNS 卡顿或 GitHub 限流,不是并发没开 - 运行
composer --version,输出必须是Composer version 2.1.x或更高;低于此版本(如2.0.14)压根不支持原生并发,http-max-concurrent-downloads和parallel-downloads都无效
该设哪个配置项:http-max-concurrent-downloads 还是 parallel-downloads
parallel-downloads 已在 Composer 2.2+ 中被弃用,设了不报错但完全不生效;当前唯一有效、被官方文档认可的并发控制项是 http-max-concurrent-downloads:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 全局设为 8(多数机器的稳妥上限):
composer config -g http-max-concurrent-downloads 8 - 临时覆盖(如 CI 中):
COMPOSER_MAX_PARALLEL_HTTP_REQUESTS=6 composer install - 别设超过 10:阿里云/腾讯云镜像在并发 >12 时容易返回
429 Too Many Requests;GitHub 源则可能触发403 rate limit exceeded - 若报
file_put_contents(/tmp/): failed to open stream,说明临时文件冲突,立刻降到 4~6
为什么调了并发还是慢?镜像和缓存才是瓶颈
并发只是“同时发请求”,如果每个请求都卡在 DNS 解析、TLS 握手或源站首字节延迟上,开 10 个等于 10 个排队窗口:
- 必须搭配国内镜像源,比如阿里云:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 镜像设置后务必清缓存:
composer clear-cache,否则旧元数据会干扰新并发逻辑 - 检查 PHP 是否启用
curl扩展:php -m | grep curl,没启用会退化为串行且不报错 -
composer update因需实时解析依赖图,元数据拉取(如packages.json)仍是串行,无法靠并发提速
hirak/prestissimo 还值得装吗
不值得。它只适用于 Composer 1.x,对 2.x 用户是明确风险源:
- 运行
composer global show,若列表里还有hirak/prestissimo,必须先执行composer global remove hirak/prestissimo - Composer 2.5+ 用户若曾用 1.x + prestissimo 构建过项目,建议删掉
vendor/和composer.lock后重装 - 插件从未加速 autoloader 生成或脚本执行——那些环节始终单线程,别指望它解决全部问题
- 所谓“prestissimo 比原生快 2–4 倍”是过时结论;Composer 2.9.6(2026 年 6 月最新稳定版)已深度优化 HTTP 客户端与连接复用,实测在阿里云镜像下,
http-max-concurrent-downloads=8的吞吐已接近 prestissimo 极限
真正卡点常不在下载本身——打开 composer install -v,看停在哪一行。如果卡在 Generating autoload files 或某个 post-install-cmd,调并发毫无意义。并发配置只影响 install 阶段的 dist 包拉取,其余环节全无作用。










