我最近遇到了作曲家的问题,而我正在安装一个symfony2软件包。
我的VM上的可用内存为700M
,但这还不够。它只在我停止一些服务并释放1.2G
后才有用。
Composer documentation没有详细说明:
注意: Composer内部将memory_limit增加到
512M
。如果您在使用composer时遇到内存问题,请考虑创建问题单,以便我们查看。
我的问题是 - 作曲家在内部做了多少记忆?
在我看来,这个过程简单fairly
,基本上检查模块之间的依赖关系,然后下载模块存档,并修改某些文件。我认为协商所有具有X
稳定性的模块版本的算法并不简单,但这是其他编程语言的包管理器之间的常见问题,还是作为算法优化问题? (例如,我没有听说过RubyGems的这些问题。)
答案 0 :(得分:4)
大多数其他依赖管理器没有完整的SAT解算器,并且做“近似”,这需要更少的比较(因此更少的CPU,更少的内存)但在某些情况下可能会产生无效的结果或无法解决的事件包管理器比如凉亭会问你想做什么。 Composer求解器通常会找到解决方案或最终发现冲突。
所以简而言之,这是一个设计选择,但我意识到由于内存使用,这也是一个问题。有一些策略可能导致内存使用率降低,但即使尝试也是耗时的事情,并且没有多少人有足够的项目知识或时间来实现这一点,所以它有点停滞不前此刻。