-
Notifications
You must be signed in to change notification settings - Fork 9.4k
magento/magento2#39948: Magento_Persistent performance overhead on non-cart, non-checkout pages #39967
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 2.4-develop
Are you sure you want to change the base?
magento/magento2#39948: Magento_Persistent performance overhead on non-cart, non-checkout pages #39967
Conversation
…on-checkout pages - new QuoteResourceWrapper class that uses direct SQL queries instead of loading the entire quote object, which should improve performance
Hi @KrasnoshchokBohdan. Thank you for your contribution!
Allowed build names are:
You can find more information about the builds here For more details, review the Code Contributions documentation. |
@magento run all tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request aims to improve performance of the persistent quote handling by introducing a new QuoteResourceWrapper that leverages direct SQL queries to check quote persistence and activeness without loading the entire quote object. The key changes include:
- Adding a new QuoteResourceWrapper class to directly query quote attributes.
- Updating CheckExpirePersistentQuoteObserver to use QuoteResourceWrapper for persistence and activeness checks.
- Replacing the full-quote validation with lightweight SQL queries to reduce execution time.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
File | Description |
---|---|
app/code/Magento/Persistent/Observer/CheckExpirePersistentQuoteObserver.php | Observer now uses QuoteResourceWrapper and replaces getQuote() checks with direct SQL query lookups. |
app/code/Magento/Persistent/Model/QuoteResourceWrapper.php | New class introduced to encapsulate SQL queries for quote status checks. |
Comments suppressed due to low confidence (1)
app/code/Magento/Persistent/Observer/CheckExpirePersistentQuoteObserver.php:127
- Directly using ObjectManager as a fallback in the constructor can be considered a violation of dependency injection best practices. Consider ensuring QuoteResourceWrapper is always provided via DI configuration (e.g., in di.xml) rather than falling back to ObjectManager.
$this->quoteResourceWrapper = $quoteResourceWrapper ?: ObjectManager::getInstance()->get(QuoteResourceWrapper::class);
…on-checkout pages - static tests fix
…on-checkout pages - unit tests
@magento run all tests |
…on-checkout pages - static tests
@magento run Static Tests |
@magento run Database Compare, Functional Tests B2B, Functional Tests CE, Functional Tests EE, Integration Tests, Magento Health Index, Sample Data Tests B2B, Sample Data Tests CE, Sample Data Tests EE, Semantic Version Checker, Unit Tests, WebAPI Tests |
Description (*)
I decided to test the solution proposed by the author. It turned out that the changes reduced the execution time of CheckExpirePersistentQuoteObserver from ~52ms to less than 1ms.


Before
After
So I make this pull request to initiate further discussion.
Related Pull Requests
Fixed Issues (if relevant)
Manual testing scenarios (*)
Questions or comments
Contribution checklist (*)