ACSD-50858: Betere prestaties voor het laden van banners'-inhoud

Het ACSD-50858 flard lost een probleem van bannerprestaties in de kar/de controlepagina op: buitensporige vragen van OB en verhoogde tijd van de paginading. Deze patch is beschikbaar wanneer Quality Patches Tool (QPT) 1.1.31 wordt geïnstalleerd. De patch-id is ACSD-50858. Het probleem wordt volgens de planning opgelost in Adobe Commerce 2.4.7.

Betrokken producten en versies

het flard wordt gecreeerd voor de versie van Adobe Commerce:

  • Adobe Commerce (alle implementatiemethoden) 2.4.5-p1

Compatibel met de versies van Adobe Commerce:

  • Adobe Commerce (alle implementatiemethoden) 2.4.4 - 2.4.6
NOTE
De patch kan van toepassing worden op andere versies met nieuwe Quality Patches Tool versies. Om te controleren of de patch compatibel is met uw Adobe Commerce-versie, werkt u het magento/quality-patches -pakket bij naar de meest recente versie en controleert u de compatibiliteit op de Quality Patches Tool : zoek naar patches op de pagina. Gebruik de patch-id als een zoekwoord om de patch te zoeken.

Probleem

De prestaties van de banner worden beïnvloed in het karretje/de controlepagina toe te schrijven aan buitensporige vragen van DB en verhoogde tijd van het paginading.

Dit probleem is opgelost door de manier te wijzigen waarop de inhoud van banners wordt geladen. Hierdoor is het aantal DB-query's met 99,99% en de laadtijd van de pagina met ~99% verminderd.

Stappen om te reproduceren:

  1. Meld u aan bij Admin en maak een eenvoudig product.

  2. Maak een klant, hetzij via Admin of de frontend, en voeg er een verzendadres voor toe.

  3. Verplaats banners.php naar de map magento_root/pub/ .

  4. Maak banners met de opdracht php pub/banners.php . Het zal 10.000 eenvoudige banners en 1.000 banners met verkoopregels produceren.

  5. Meld u aan bij de klant die u eerder op de voorzijde hebt gemaakt.

  6. Voeg het eerder gemaakte product toe aan het winkelwagentje.

  7. Ga naar de afhandelingspagina (Afrekenen/Kar).

  8. Controleer de laadtijd van de banner/ajax/load aanvraag:

    • Zonder bin/magento dev:query-log:enable

    • Met bin/magento dev:query-log:enable

      code language-none
      grep 'magento_banner_content' var/debug/db.log  | wc -l
      

Verwachte resultaten :

Verlaag het aantal DB-query's voor magento_banner_content en de laadtijd van de pagina met cart- en uitcheckpagina.

Ware resultaten :

Verhoog het aantal DB-query's voor magento_banner_content en de laadtijd van de pagina met cart/checkout.

De patch toepassen

Om individuele flarden toe te passen, gebruik de volgende verbindingen afhankelijk van uw plaatsingsmethode:

Aanvullende informatie

banners.php inhoud :

\Banner::class);
    $banner->setIsEnabled(
        \Magento\Banner\Model\Banner::STATUS_ENABLED
    )->setName(
        'Test Dynamic Block '.$i
    )->setTypes(
        ''
    )->setStoreContents(
        [0 => 'Dynamic Block Content '.$i]
    )->save();
}

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();

/** @var \Magento\SalesRule\Model\Rule $salesRule */
$salesRule = $objectManager->create(\Magento\SalesRule\Model\Rule::class);
$salesRule->setData(
    [
        'name' => '50% Off ',
        'is_active' => 1,
        'customer_group_ids' => [\Magento\Customer\Model\GroupManagement::NOT_LOGGED_IN_ID],
        'coupon_type' => \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON,
        'conditions' => [
            [
                'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class,
                'attribute' => 'base_subtotal',
                'operator' => '>',
                'value' => 0
            ]
        ],
        'simple_action' => 'by_percent',
        'discount_amount' => 50,
        'discount_step' => 0,
        'stop_rules_processing' => 1,
        'website_ids' => [
           1
        ]
    ]
);
$salesRule->save();

for ($i = 0; $i < 1000; $i++) {

    $banner = $objectManager->create(\Magento\Banner\Model\Banner::class);
    $banner->setData(
        [
            'name' => 'Get 50% Off ',
            'is_enabled' => \Magento\Banner\Model\Banner::STATUS_ENABLED,
            'types' => [], /*Any Banner Type*/
            'store_contents' => ['<img src="http://example.com/banner_40_percent_off.png" />'],
            'banner_sales_rules' => [$salesRule->getId()],
        ]
    );
    $banner->save();
}

Gerelateerde lezing

Meer informatie over Quality Patches Tool vindt u in:

Voor informatie over andere flarden beschikbaar in QPT, verwijs naar Quality Patches Tool: Onderzoek naar flardenin de Quality Patches Tool gids.

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a