From 9ae7f320cff5376982e970732f126175821f2ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Mon, 9 Sep 2024 00:57:35 +0200 Subject: [PATCH] Do not call gc_collect_cycles in the loop to process the results, but only after all processBatch calls --- .../Providers/OEMSecretsProvider.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Services/InfoProviderSystem/Providers/OEMSecretsProvider.php b/src/Services/InfoProviderSystem/Providers/OEMSecretsProvider.php index 8e9476b2..12e63f7f 100644 --- a/src/Services/InfoProviderSystem/Providers/OEMSecretsProvider.php +++ b/src/Services/InfoProviderSystem/Providers/OEMSecretsProvider.php @@ -382,8 +382,15 @@ class OEMSecretsProvider implements InfoProviderInterface } } + //Force garbage collection to free up memory + gc_collect_cycles(); + // Sort of the results $this->sortResultsData($results, $keyword); + + //Force garbage collection to free up memory + gc_collect_cycles(); + return $results; } @@ -645,11 +652,6 @@ class OEMSecretsProvider implements InfoProviderInterface vendor_infos: $purchaseInfoResults[$provider_id] ?? [] ); - // Force garbage collection to deallocate unused memory cycles - // Without this instruction, when in dev mode, after the first or second call to getDetails, - // a memory error occurs due to memory not being freed properly, leading to memory exhaustion. - gc_collect_cycles(); - return $partDetailDTO; }