小编Alp*_*gen的帖子

迭代中使用存储库的内存泄漏(在开发环境中)

您好,我在尝试使用以下代码创建大量产品评论时遇到内存泄漏:

echo "Start: " . memory_get_usage();
foreach ($reviews['items'] as $review) {
    $newReview = $this->handleReviewData($review, $languages, $salesChannels, $context);

    if ($newReview) {
        $reviewsToImport[] = $newReview;
    }
    echo "End: " . memory_get_usage();
}

$this->productReviewRepository->create($reviewsToImport, $context);
Run Code Online (Sandbox Code Playgroud)

我正在$this->productReviewRepositoryinside上运行多个查询$this->handleReviewData。所以我猜测以某种方式造成了泄漏,但我找不到 or ->flush()->clear($entity)因为它不是 Symfony)。有任何想法吗?

它为每次迭代添加+-1000000 bytes( 1mb) 内存。

处理评论数据函数:

public function handleReviewData($review, $languages, $salesChannels, $context): ?array
{
    $reviewLocaleCode = $review['questionnaire']['locale'];
    $productSku = $review['product']['sku'];
    $salesChannels = $salesChannels->filter(static function ($salesChannel) use ($review) {
        /* @var $salesChannel TrustApiEntity */
        return $salesChannel->getChannelId() …
Run Code Online (Sandbox Code Playgroud)

memory entity memory-leaks repository shopware6

1
推荐指数
1
解决办法
207
查看次数

标签 统计

entity ×1

memory ×1

memory-leaks ×1

repository ×1

shopware6 ×1