为什么当我所做的是创建一个零依赖项目时,作曲家这么慢?以下是我运行的命令:
/vendor
composer init
等3分钟(不夸张).
所有作曲家要做的就是拉动自动加载器并创建init,那么为什么需要这么长时间呢?就此而言,为什么不采取这一步骤/vendor呢?
是否有一个配置选项可用于引入缓存的自动加载器和供应商composer init?
小智 315
因为作曲家实现了file_get_contents().没有TCP优化,没有Keep-Alive,没有多路复用......
我创建了一个composer插件来并行下载包.
https://packagist.org/packages/hirak/prestissimo
$ composer global require hirak/prestissimo
请试一试.在我的环境中,composer install变得快10倍.
sgr*_*r12 42
composer global require "squizlabs/php_codesniffer=*" -vvvcomposer config --global repo.packagist composer https://packagist.org小智 30
另外,禁用xdebug.即使在运行简单的命令时,Xdebug也可能导致Composer花费几分钟composer --version.
小智 10
同样在这里.通过"composer install --profile -vvv"获取更多详细信息.在我的情况下,下载一些json文件需要很长时间.它们会缓存在我的服务器上,但仍会在每次编写器更新/安装调用时下载.
...... 30分钟后......
看起来有点性能问题@ packagist.org.现在composer安装在2秒内运行!下载的json文件已正确缓存.
我遇到了这个问题,由于没有在计算机上的任何位置安装Xdebug,这使我不知所措。原来是IPv6寻址模式失败。为了测试我跑了
curl --ipv4 'https://packagist.org/packages.json'
curl --ipv6 'https://packagist.org/packages.json'
Run Code Online (Sandbox Code Playgroud)
IPv4通过,但IPv6失败。最后,您应该查看一下为什么您的网络堆栈不支持它,但是就我而言,我决定只对IPv4流量优先,直到我解决了。在CentOS上,我创建/修改了文件/etc/gai.conf并放入以下内容:
label ::1/128 0
label ::/0 1
label 2002::/16 2
label ::/96 3
label ::ffff:0:0/96 4
precedence ::1/128 50
precedence ::/0 40
precedence 2002::/16 30
precedence ::/96 20
precedence ::ffff:0:0/96 100
Run Code Online (Sandbox Code Playgroud)
在Ubuntu上,您还可以编辑该文件并取消注释该行
precedence ::ffff:0:0/96 100
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu Xenial 16.04 VPS 上,您需要执行以下操作:
sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"
composer global require hirak/prestissimo
Run Code Online (Sandbox Code Playgroud)
它将 IPv4 配置为优先于 IPv6。
https://serverfault.com/questions/93717/setting-ipv4-as-preferred-protocol-over-ipv6