Composer更新缓慢的解决方案
来源:互联网 发布:淘宝外卖点麻辣烫 编辑:程序博客网 时间:2024/04/30 16:15
首先有三个问题
- 1、composer更新为什么会慢?
- 2、已经下载的包为什么不再下载?
- 3、怎么改进速度?
要明白是什么影响了Composer的运行速度,必须先理解Composer的运行原理。Composer的大致运行步骤如下:
分析:
composer 执行update require命令时主要做了这些事情。
- 1.载入composer.json文件,找到配置的需要安装的第三方软件信息(version)
- 2.从localRepository缓存目录和CompoesrRepository服务器获取第三方软件packages详细信息,信息存储在一个json文件中,链接像https://packagist.com/p/all$hash.json 这样,如果安装的有第三方依赖管理插件如bower npm,此时也会从官方获取第三方软件的信息。
- 3.很重要的一步,创建Installer根据输入的参数配置,获取包require和conflict的组件,整合一起分析依赖关系,判断是否执行安装更新等操作。最终得到了需要安装的第三方软件packages信息清单。
- 4.然后根据配置信息和清单下载链接决定下载方式,source or dist,值得一说的是官方采用file_get_contents下载dist文件。
- 5.将软件包缓存在composer配置的目录下,并将第三方软件解压安装到项目中的vendor目录,生成用于载入第三方软件的autoload.php等文件并在vendor/composer目录下生成installed.json文件。
解决方案:
总体来看,瓶颈在与2、3、4步,以下为每步的解决方案:
* 第2步: Composer会因为访问Packagist官方网站变慢,我们可以通过使用Composer镜像或者代理服务器。
* 第3步 限制于PHP的运行效率,解决依赖的算法,如果用的第三方软件特别多,rules相应的也会变的特别庞大,容易造成内存不足、超时。我们可以使用hhvm或者效率较高的php7。
* 第4步 主要是下载缓慢,composer默认下载dist依赖包时采用的是file_get_contents,会阻塞其他下载任务。有个plugin解决了这个问题。composer parallel install plugin(使用了curl的多线程下载)源码地址:https://github.com/hirak/prestissimo
0 0
- Composer更新缓慢的解决方案
- Composer更新慢的终极解决方案
- Composer更新慢的终极解决方案
- Composer更新慢的终极解决方案
- Android sdk更新缓慢最佳解决方案
- composer的安装及更新
- liunx 下tomcat启动缓慢的解决方案
- Composer 出现error:14090086的解决方案
- Android SDK更新缓慢或无法更新的解决方法
- Android SDK更新缓慢或无法更新的解决方法
- Android SDK更新缓慢或无法更新的解决方法
- Android SDK更新缓慢或无法更新的解决方法
- 更新sdk缓慢或者无法更新的解决方法
- AutoCAD2007 打开缓慢解决方案
- weblogic启动缓慢解决方案
- pinyin4j速度缓慢解决方案
- IDEA运行缓慢解决方案
- 最近更新缓慢.
- bitmap的oom问题
- Redis 配置文件 详解
- C语言中宏定义(#define)时do{...}while(0)的价值
- js函数的闭包
- js事件的分类和介绍
- Composer更新缓慢的解决方案
- 在布局中使用include引入其他layout时引发click事件不触发的问题
- 如何将git远程分支更新到本地
- python中新手常见的17个错误类型
- JAVA学习路线
- 长轮询 Servlet实现
- Lenovo X3650 M5 安装 ESXi-5.5.0u3 报错failed to resolve circular relocation
- 数组和链表的区别
- sigslot库的简单使用