composer如何在Windows下提速_composer Windows性能优化【加速】

2次阅读

windows 上 composer install 特别慢的根本原因是 ntfs 文件系统处理大量小文件效率低,叠加 git 行尾转换、defender 实时扫描及 php 配置不当;禁用 git clone 改用 zip、排除 defender 扫描目录、启用 opcache 可将耗时从 3 分钟降至 20 秒内。

composer如何在Windows下提速_composer Windows性能优化【加速】

composer install 为什么在 windows 上特别慢

根本原因是 Windows 的文件系统(NTFS)对大量小文件的读写效率低,加上 Composer 默认启用的 git cloneunzip 操作会触发大量磁盘 I/O,而 PHP 的 proc_open 在 Windows 下启动子进程开销也比 linux 高得多。更关键的是,Windows 版 Git for Windows 默认启用 core.autocrlf=true,导致每次检出都做行尾转换,拖慢依赖解包。

禁用 git clone 改用 zip 包安装

Composer 默认优先走 git clone(尤其对 dev 分支),但在 Windows 上这一步最卡。强制它走 zip 包能跳过 Git 开销,提速 3–5 倍。

  • 全局设置:composer config -g prefer-stable true + composer config -g use-zip true
  • 项目级覆盖(推荐):在 composer.json 里加 "config": {"use-zip": true}
  • 注意:部分私有仓库或含 post-install-cmd 的包可能不兼容 zip 模式,遇到 Failed to download ... No zip archive found 就得关掉

关闭 Windows Defender 实时扫描临时目录

Composer 解压、生成 autoload 文件、写 vendor 目录时,Defender 会逐个扫描每个 .php 文件——这是 Windows 下最隐蔽的性能杀手。

  • %TEMP% 和项目根目录加入 Defender 排除列表(路径需具体到完整盘符,如 C:myproject
  • 检查是否生效:运行 composer install -vvv,看日志里 Extracting... 阶段耗时是否从分钟级降到秒级
  • 别只排除 vendor/:Defender 对 %TEMP%composer_archive* 的扫描同样致命

PHP 配置和运行环境微调

默认的 Windows PHP(尤其 XAMPP/WAMP 自带版本)常启用了过多 Xdebug 或 opcache 关闭,直接拖累 Composer 自身运行速度。

  • 确认 php.iniopcache.enable=1xdebug.mode=off(不是注释掉,是明确设为 off)
  • php -m | findstr opcachephp -m | findstr xdebug 验证
  • 避免在 WSL2 里跑 Windows 的 composer —— 跨文件系统调用 NTFS 会更慢;真要用 WSL,就整个项目放 /home/xxx/ 下,用 WSL 自带的 PHP + Composer

真正卡住的从来不是网络,而是本地 I/O 和防病毒软件的“热心帮忙”。关掉 Defender 扫描、切 zip 安装、确保 opcache 开着,这三步做完,composer install 从 3 分钟掉到 20 秒内是常态。但要注意:私有 gitlab 仓库若没开启 zip download 功能,use-zip 会直接失败,得单独处理。

text=ZqhQzanResources