Composer 没有 composer profile 命令,真正用于性能分析的是 --profile 选项,如 composer install --profile,可显示各内部阶段耗时,定位慢在 autoload、resolver、script 等环节。
composer
profile 命令本身不存在
Composer 没有内置的
命令。你看到的可能是误传、插件扩展,或把
/
混淆了。真正能输出执行耗时和性能分析信息的是:
和
(或
)。
用 --profile 查看命令各阶段耗时
在任意 Composer 命令后加
,它会打印出每个内部阶段的耗时(单位:秒),包括 autoload 生成、依赖解析、包下载、解压、脚本执行等。这是最轻量、无需额外工具的性能定位方式。
常见用法:
:查看首次安装全过程耗时分布
:观察依赖更新中 resolver 或 installer 占用是否异常高
:确认自动加载优化是否生效,比如
生成是否变慢
注意:
不会改变命令行为,但会略微增加开销(可忽略)。它只对当前命令有效,不记录历史。
为什么 --profile 显示的“script”阶段特别长?
很多项目在
或
中执行耗时操作(如生成缓存、运行 PHPStan、构建
前端
资源),这些会被归入
阶段并计入总耗时。这不是 Composer 本身慢,而是你定义的脚本拖慢了流程。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
排查建议:
检查
的
字段,临时注释掉非必要钩子再跑
用
对比耗时,确认脚本占比
对可疑脚本单独执行并加
或
进一步下钻(如
)
更细粒度分析需配合外部工具
只到 Composer 内部阶段级别,看不到 PHP 函数调用栈。若要定位具体哪行代码/哪个包导致卡顿,得借助:
Xdebug +
:生成 cachegrind 文件,用 QCacheGrind 打开分析(注意仅用于本地调试,勿在生产启用)
PHP’s built-in
手动打点:在自定义脚本开头/结尾插入计时,快速验证某段逻辑
:查网络 I/O 瓶颈(比如私有仓库响应慢)
别指望一个参数解决所有性能问题——
是第一道筛子,筛出慢在哪一大块;后面得靠场景选工具,一层层剥开。
composer profilecomposer diagnosecomposer show --profilecomposer show --profilecomposer install --profileupdate --profile--profilecomposer install --profilecomposer update --profilecomposer dump-autoload --profileclassmap--profilepost-install-cmdpost-update-cmdscriptcomposer.jsonscripts--profiletime composer install --no-scriptstimexdebug_profilephp -d xdebug.mode=profile vendor/bin/phpunit--profilexdebug.mode=profilemicrotime(true)strace -T -e trace=connect,sendto,recvfrom composer install--profile