Commit 43833290 authored by Andreas Fernandez's avatar Andreas Fernandez Committed by Susanne Moog
Browse files

[BUGFIX] Don’t do greedy merges in extension scanner

The extension scanner merges all matches into an array. This is done in a
loop, which is pretty greedy as it impacts CPU and RAM.

Instead, it's possible to do a single array_merge() at the end of the
loop.

See this document for reference:
https://github.com/kalessil/phpinspectionsea/blob/master/docs/performance.md#slow-array-function-used-in-loop

Resolves: #86282
Releases: master
Change-Id: I09b45468dfd9f60ce6bd9e264ecfc3cbfcb54fa1
Reviewed-on: https://review.typo3.org/58302


Tested-by: default avatarTYPO3com <no-reply@typo3.com>
Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Susanne Moog's avatarSusanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog's avatarSusanne Moog <susanne.moog@typo3.org>
parent bae520c6
......@@ -630,11 +630,12 @@ class UpgradeController extends AbstractController
$traverser->traverse($statements);
// Gather code matches
$matches = [];
$matches = [[]];
foreach ($matchers as $matcher) {
/** @var \TYPO3\CMS\Install\ExtensionScanner\CodeScannerInterface $matcher */
$matches = array_merge($matches, $matcher->getMatches());
$matches[] = $matcher->getMatches();
}
$matches = array_merge(...$matches);
// Prepare match output
$restFilesBasePath = ExtensionManagementUtility::extPath('core') . 'Documentation/Changelog';
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment