Performance Version CE 6.3

Hallo zusammen!

Wir nutzen Oxid CE für einen Buch-Shop. Auf unserem Testsystem haben wir ein Update von Oxid 6.1.4 auf 6.3 vorgenommen (und dabei auch PHP von 7.3 auf 7.4 angehoben).

Die Performance ist dabei deutlich schlechter geworden. Die größte Kategorie im Shop enthält gut 10.000 Artikel. Öffnet man die Kategorie über das Hauptmenü, benötigt die Seite ungefähr 25 Sekunden zum Laden (vorher 3 Sekunden).

Auch das Abschalten aller von uns erstellten Module und unseres Themes bringt keine Verbesserung.

Sind Performance-Probleme mit der neuen Version bekannt? Gibt es irgendwas, das ich noch prüfen oder ausprobieren könnte?

Vielen Dank für die Hilfe!

Michael

wurde das Update in der ursprünglichen Datenbank durchgeführt oder wurde die DB dafür exportiert und neu importiert?

3 Sekunden erscheint mir bereits langsam. Am Besten die Queries der Kategorie angucken und analysieren ob das die Ursache sein könnte.

Das Update ist in der ursprünglichen Datenbank durchgeführt worden. Wäre Export/Import besser gewesen?

nein, beim Export/Import gehen oft Indices in der Datenbank verloren, was den Einbruch der Perforamnce erklärt haben könnte, aber das ist ja hier nicht der Fall.

Man könnte den Debug Modus in der config.inc.php aktivieren und schauen, was für Zahlen er ausspuckt.

Mit debug=4 werden ich von Daten erschlagen. Mit debug=-1 ist das hier der einzige Abschnitt, der auffällt, weil die execution time so hoch ist. In der Tabelle darunter ist allerdings kein Grund dafür zu erkennen. Die SQLs, die an der MySQL-Datenbank ankommen, sind übrigens auch nicht langsam.

cl=alist(show/hide)
Memory usage: 18.573 MB (peak: 32.846 MB)
System memory usage: 36 MB (peak: 36 MB)
Executed: 2021-07-13 14:12:38
Timestamp: 1626178358.4074
Execution time:23.4404
----------------------------------------------------------
Profile loadinglists: 	0.66878s	2.85% 	1	*	0.66878s
Profile oxNew: 	0.13018s	0.56% 	281	*	0.00046s
Profile generatePageNavigation: 	0.06383s	0.27% 	3	*	0.02128s
Profile process: 	0.05751s	0.25% 	21	*	0.00274s
Profile buildTree: 	0.04858s	0.21% 	1	*	0.04858s
Profile executeMaintenanceTasks: 	0.00686s	0.03% 	1	*	0.00686s
Profile getCategoryUri: 	0.00293s	0.01% 	1217	*	0s
Profile smarty_function_oxmultilang: 	0.00251s	0.01% 	111	*	2.0E-5s
Profile seoencoder_loadFromCache: 	0.00238s	0.01% 	1246	*	0s
Profile _getAmountPrice: 	0.0021s	0.01% 	10	*	0.00021s
Profile articleAssign: 	0.00204s	0.01% 	10	*	0.0002s
Profile _getLangTranslationArray: 	0.00137s	0.01% 	132	*	1.0E-5s
Profile getArticleUri: 	0.00035s	0% 	10	*	4.0E-5s
Profile _assignPriceInternal: 	0.00026s	0% 	10	*	3.0E-5s
Profile fround: 	0.0001s	0% 	100	*	0s
Profile \OxidEsales\Eshop\Core\ViewConfig::getViewConfigParam: 	5.0E-5s	0% 	85	*	0s
Profile _applyVAT: 	4.0E-5s	0% 	20	*	0s
Profile \OxidEsales\Eshop\Core\ViewConfig::setViewConfigParam: 	3.0E-5s	0% 	84	*	0s
Profile isSearchEngine: 	3.0E-5s	0% 	1	*	3.0E-5s
Profile articleAssignParentInternal: 	2.0E-5s	0% 	10	*	0s

Da wird nicht alles gemessen. Du kannst Teile aus dem Template löschen, muss natürlich syntaktisch korrekt bleiben, und schauen ob die lange Ladezeit durch einen Aufruf aus dem Template verursacht wird, und dann an der Stelle im PHP weitersuchen.

Ich bin mittlerweile so weit, dass ich weiß, dass in

/oxideshop/source/Application/views/flow/tpl/page/list/list.tpl

in der Zeile

[{include file="widget/locator/listlocator.tpl" locator=$oView->getPageNavigationLimitedTop() attributes=$oView->getAttributes() listDisplayType=true itemsPerPage=true sort=true}]

dieser Aufruf das Problem ist:

$oView->getAttributes()

Das prüfe ich jetzt mal genauer.

Ich setze die attributes jetzt einfach gleich NULL. Scheint keine Auswirkung auf unseren Shop zu haben und löst das Problem.