4e1887a721
It is known that composer update takes a lot of memory: #5915, #5902, I am playing with a profiler (@blackfireio) to make a demo in my local PHP meetup (@phpvigo) and I found out a way to use less memory. These are my first tests: * Private project using PHP 5.6: * Memory: from 1.31GB to 1.07GB * Wall Time: from 2min 8s to 1min 33s * symfony-demo using PHP 7.1 in my old mac book: * Memory: from 667MB to 523MB * Wall Time: from 5min 29s to 5min 28s Not use an array inside conflict rules is this improvement main idea: ```php <?php //Memory 38MB gc_collect_cycles(); gc_disable(); class Rule { public $literals; public function __construct(array $literals) { $this->literals = $literals; } } $rules = array(); $i = 0; while ($i<80000){ // $i++; $array = array(-$i, $i); $rule = new Rule($array); $rules[] = $rule; } ``` ```php <?php //Memory 11.1MB gc_collect_cycles(); gc_disable(); class Rule2Literals { public $literal1; public $literal2; public function __construct($literal1, $literal2) { $this->literal1 = $literal1; $this->literal2 = $literal2; } } $rules = array(); $i = 0; while ($i<80000){ // $i++; $rule = new ConflictRule(-$i, $i); $rules[] = $rule; } ``` More info https://github.com/composer/composer/pull/6168 |
||
---|---|---|
.github | ||
bin | ||
doc | ||
res | ||
src | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.php_cs | ||
.travis.yml | ||
CHANGELOG.md | ||
LICENSE | ||
PORTING_INFO | ||
README.md | ||
appveyor.yml | ||
composer.json | ||
composer.lock | ||
phpunit.xml.dist |
README.md
Composer - Dependency Management for PHP
Composer helps you declare, manage and install dependencies of PHP projects.
See https://getcomposer.org/ for more information and documentation.
Installation / Usage
Download and install Composer by following the official instructions.
For usage, see the documentation.
Packages
Find packages on Packagist.
Community
IRC channels are on irc.freenode.org: #composer for users and #composer-dev for development.
For support, Stack Overflow also offers a good collection of Composer related questions.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project and its community you agree to abide by those terms.
Requirements
PHP 5.3.2 or above (at least 5.3.4 recommended to avoid potential bugs)
Authors
- Nils Adermann | GitHub | Twitter | naderman@naderman.de | naderman.de
- Jordi Boggiano | GitHub | Twitter | j.boggiano@seld.be | seld.be
See also the list of contributors who participated in this project.
Security Reports
Please send any sensitive issue to security@packagist.org. Thanks!
License
Composer is licensed under the MIT License - see the LICENSE file for details
Acknowledgments
- This project's Solver started out as a PHP port of openSUSE's Libzypp satsolver.
- This project uses hiddeninput.exe to prompt for passwords on windows, sources and details can be found on the github page of the project.