rubenrua
4e1887a721
Improve memory usage resolving dependencies
...
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
2017-02-20 18:52:17 +00:00
Jordi Boggiano
4cd6eabdba
Merge branch '1.2'
2016-10-08 11:27:52 +02:00
Yanick Witschi
4a769a785c
Reduce calls on Rule::getHash()
2016-09-30 17:25:41 +02:00
Rob Bast
9cbcda9ae6
add test that asserts pool priority matters
...
also switch assertEquals for assertSame
2016-09-28 09:34:08 +02:00
Jordi Boggiano
1bd9c8da3c
More ruletest fixes for 7.1
2016-04-01 11:58:42 +01:00
Jordi Boggiano
c74e6df65d
Fix strings being passed to an int arg, fixes 7.1 build
2016-04-01 11:52:19 +01:00
David Prévot
933a8e1d09
Fix method name
...
It makes the test fail with recent (>= 3.1) phpunit-mock-objects
version.
2016-03-28 23:37:19 -04:00
Niels Keurentjes
8e78ce9a43
Add extra logging before and after SAT solving
2016-03-24 23:19:40 +01:00
Jefferson Carpenter
b7845bb6c0
Update SolverTest.php
2016-01-28 20:13:44 -06:00
Rob Bast
b523fc0b7b
ran fixers
2015-10-13 11:35:51 +02:00
Jordi Boggiano
ce08582671
Fix CS
2015-09-28 10:53:24 +01:00
Rob Bast
a1427d7fd6
replace all occurences in code and comments
2015-09-24 16:32:36 +02:00
Nils Adermann
6e81f63635
Reduce memory footprint of rules by storing data in blob
...
Not declaring the job property saves significant amounts of memory as
most rules leave it as null
2015-07-09 17:23:45 +02:00
Nils Adermann
b869fa9662
Correct rule hash test
2015-07-08 19:36:13 +02:00
Possum
2e99b9fdf5
Use https where possible
2015-05-04 19:37:57 +02:00
Nils Adermann
b4ed331168
The Solver Request no longer depends on the Pool
2015-04-30 17:24:24 +02:00
isoroku
e0657b60a2
Fix misspellings
2015-03-20 14:23:24 +00:00
Nicolas Grekas
4a0feb0189
add --prefer-lowest-stable to update command
2014-12-13 11:51:30 +01:00
Nils Adermann
26598c4a9a
Remove unnecessary pool reference from rules
2014-12-01 19:02:50 +01:00
Nils Adermann
d77400ade2
Make ruleById lookup table in rule set public
...
Saves about 500k function calls on a packagist update
2014-12-01 18:28:45 +01:00
Jordi Boggiano
94926218e8
CS fixes
2014-10-17 18:57:27 +01:00
Jordi Boggiano
ec0463a400
Add tests for platform packages required by root and avoid creating rules altogether instead of disabling them, refs #3320
2014-10-17 15:30:27 +01:00
Nils Adermann
5b80144ad0
Resolve job packages after whitelist generation
2014-02-21 13:41:21 +01:00
Nils Adermann
3148ffd355
Whitelist packages with names matching those specified before generating rules
...
Addresses #2690 doesn't do any performance optimisations yet which we
could do now
2014-02-21 12:25:15 +01:00
Jordi Boggiano
38917c2047
Add parallel build to travis script
2013-09-25 10:23:48 +02:00
Jordi Boggiano
051d219438
Fix whatProvides returning too many results when no constraint is given
2013-08-12 18:37:34 +02:00
Jordi Boggiano
e848c76cbc
Only compare branches as versions in the policy to sort packages, but not in the solver, fixes #1817
2013-05-23 18:12:54 +02:00
Jordi Boggiano
cc9dac8fe2
Fix tests and convert all package lists to Name[Versions] format
2013-04-27 00:31:22 +02:00
Robert Gruendler
5160dd2f5e
Return different error code for SolverProblemsException
...
To make it easier for external tools to detect SolverProblems and react
to them accordingly,
this PR introduces a new exit code.
2013-04-25 14:37:47 +02:00
Jordi Boggiano
b41fd35c2b
Remove unused use statement
2013-04-17 18:38:05 +02:00
Jordi Boggiano
0700cd9186
Adjust according to feedback
2013-04-17 17:37:22 +02:00
Jordi Boggiano
db4055b778
Put a higher prio on replacers of the same vendor as the required package
2013-04-17 15:39:42 +02:00
Jordi Boggiano
b0297ef67a
Add prefer-stable flag to pick stable package over unstable ones when possible
2013-04-02 18:40:42 +02:00
Jordi Boggiano
3ca22f9ef1
Fix class name
2013-02-20 15:27:11 +01:00
Jordi Boggiano
1c39ad779b
Fix wording
2012-10-31 18:34:27 +01:00
Jordi Boggiano
5d78fa6ce6
Report typos in package name if no version matches
2012-10-31 18:20:54 +01:00
Jordi Boggiano
beb9a5bd72
Code optimizations: avoid loops in match()
2012-10-14 16:35:32 +02:00
Jordi Boggiano
18492a1f84
Remove Pool::getMaxId and the solver's reliance on it
2012-10-12 18:45:41 +02:00
Jordi Boggiano
fb4183d5ad
Fix tests
2012-10-08 20:05:42 +02:00
Jordi Boggiano
d4aab7d5b6
Fix solver test
2012-07-11 19:37:02 +02:00
Jordi Boggiano
6573fd3f77
Add hint in solver exceptions as to what may be wrong
2012-07-04 15:57:51 +02:00
Jordi Boggiano
175d1939b5
Fix tests
2012-07-04 14:28:15 +02:00
Jordi Boggiano
e6f7150196
Change default minimum-stability to "stable", fixes #744
2012-07-04 14:22:09 +02:00
Jordi Boggiano
4fcc114f97
Merge pull request #808 from palex-fpt/not-equal-operator
...
Add '<>' operator to Version Parser
2012-06-22 07:00:18 -07:00
Nils Adermann
cc7632489d
Make problem report messages more readable
...
Added pretty strings to constraints
2012-06-20 19:06:36 +02:00
Alexey Prilipko
e130386612
Add '<>' operator for Version Parser
2012-06-19 12:11:11 +11:00
Grégoire Pineau
f4e9dd4fb8
Fixed PSR rules
2012-06-14 12:10:01 +02:00
Nils Adermann
a08c2a0b9f
Corrected altered error message in test
2012-06-07 11:07:09 +02:00
Nils Adermann
67fde90666
Correctly sort operations within transactions using DFS
...
Fixes #655
2012-06-05 01:06:35 +02:00
Nils Adermann
a7f1605cdf
Add test for correct sorting when force installing deps
2012-06-04 23:30:55 +02:00