facile-it / paraunit

Run PHPUnit tests in parallel
https://engineering.facile.it/paraunit/
Apache License 2.0
140 stars 15 forks source link

GC affects performance #90

Closed dxops closed 7 years ago

dxops commented 7 years ago

On a large test case, GC takes a lot of time (30% time in our case). Consider disabling GC for PHPUnit process inside Paraunit. TestCases are quite small, running TestCase in a process doesn't require to much memory, so let the OS handle memory cleanups.

Jean85 commented 7 years ago

I tried to see if disabling it did something about the performance of Paraunit. I tried on our unit test suite, and this is the result:

Execution time -- 00:01:12 
Executed: 531 test classes, 2582 tests

vs

Execution time -- 00:01:10 
Executed: 531 test classes, 2582 tests

The difference is negligible, and the risk of having issues is very high, especially when collecting code coverage, which is very memory intensive; thus, I would not forcibly disable it from Paraunit.

I would advise you to add a gc_disable() in your TestCase. Thanks for your input!