Performance-Killer

Um das Thema hier mal wieder in eine andere Richtung zu schieben:

Wie bekommen wir (Marco) diesen Thread nun ins Englische übersetzt und den Oxid - Core - Programmieren unter die Nase gerieben ?
Bin der Meinung, dass sich die Oxid-Programmierer sich die Lösung mal angucken sollte und Ihr Meinung abgeben sollten.

CYA

Moin,

schauen wir, was mit dem Bugeintrag passiert. Manche Dinge lassen sich eben nicht wirklich als Bug oder Feature klassifizieren, dieses hier fällt in den Bereich “Maintenance”. Ich bin da dran.

Gruß

[QUOTE=avenger;27717]
Ich habe mit meiner neuen Routine die Kategorien-Auswahlbox für die Suche mit den Daten des gleichen Kundenshops nach gebaut (wobei ich kein Template mehr verwende, um die Auswahlbox zu rendern, sondern das direkt wesentlich effizienter mache).

Hier das geniale Resultat:

[B]Time elapsed: 0.127586126328 seconds for 379 categories.[/B]

Statt [B]2,3[/B] Sekunden werden also jetzt nur noch [B]0,13[/B] Sekunden für den Aufbau der Kategorien-Auswahlbox “verbraten”, dieses Verfahren ist also [B]17 mal [/B]schneller als das Standard-OXID-Verfahren![/QUOTE]
Der Vollständigkeit halber habe ich das neue Verfahren auch auf dem Kundenserver getestet:

Ergebnis:

[B]Time elapsed: 0.048272848129272 seconds for 381 categories.[/B]

Statt [B]2,3 [/B]Sekunden werden jetzt also nur noch [B]0,048[/B] Sekunden (48 Milli-Sekunden) für den Aufbau des Kategorien-Dropdowns benötigt.

Das Verfahren ist also tatsächlich [B]48 mal [/B]schneller…

Mit solchen Zeiten kann man also ganz entspannt [B]komplexe Menüs, die den ganzen Kategorien-Baum abbilden[/B], in einem Shop verwenden…
[B]
P.S.:[/B]

Dass es nicht um den erwarteten[B] Faktor 50 [/B]schneller ist, liegt daran, dass ich nicht direkt die Auswahlbox erstelle, sondern zuerst eine Array-Struktur mit allen Kategorieknoten (um daraus dann alle möglichen Menülisten erstellen zu können: Dropdowns, “[B]ul/li[/B]”-Listen)…

Man kann sicher noch einige weitere Zeit einsparen, wenn man diesen Array als Zwischenschritt weg lässt, und [B]direkt [/B]die gewünschte Struktur “[B]on-the-fly[/B]” generiert…

Das dürfte den Faktor 50 dann sogar um einiges übersteigen…

[QUOTE=Marco Steinhaeuser;27872]Moin,

schauen wir, was mit dem Bugeintrag passiert. Manche Dinge lassen sich eben nicht wirklich als Bug oder Feature klassifizieren, dieses hier fällt in den Bereich “Maintenance”. Ich bin da dran.

Gruß[/QUOTE]
Ein “Bug” ist es m.E. eigentlich nicht, da das Ganze ja (systemkonform und politisch korrekt) richtige Ergebnisse liefert… (Deshalb habe ich das ja auch als einen “Feature”-Wunsch gekennzeichnet.)

Ist halt nur arg langsam, so dass man es sich bei vielen Kategorien nicht erlauben kann, “coole” Menüs zu verwenden…

Das ist eine der Schattenseiten der Objektorientierung: es werden Unmengen von Daten produziert, die man aber sehr oft (wie auch hier) gar nicht braucht…

Das von mir getestete, auf den spezifischen Zweck optimierte Verfahren, ist nicht nur um Größenordnungen schneller, sondern belegt zudem (im Vergleich zu Standard-Verfahren) auch nur “winzige” Mengen an Arbeitsspeicher…

Wenn man sich mal im Debugger anschaut, was für Daten da in einem Kategorie-Knoten-Objekt enthalten sind, wundert man sich eigentlich eher, dass das trotz allem nur 2,3 Sekunden braucht…

[QUOTE=avenger;27916]Ein “Bug” ist es m.E. eigentlich nicht, da das Ganze ja (systemkonform und politisch korrekt) richtige Ergebnisse liefert… (Deshalb habe ich das ja auch als einen “Feature”-Wunsch gekennzeichnet.)
[/QUOTE]

Sehe ich eigentlich auch so. Wobei Oxid ein gesundes Interesse daran haben sollte das Umzusetzen. Bei mir und den meisten anderen kleineren Shops (CE-User) fällt dieses Problem fast gar nicht auf, da es nur wenige Kategorien gibt und die Ladezeiten sowieso entsprechend gering sind.

Bei großen Shops ( = EE-Shops) sieht das anderst aus.

CYA

[QUOTE=Firefax;27923]Sehe ich eigentlich auch so. Wobei Oxid ein gesundes Interesse daran haben sollte das Umzusetzen. Bei mir und den meisten anderen kleineren Shops (CE-User) fällt dieses Problem fast gar nicht auf, da es nur wenige Kategorien gibt und die Ladezeiten sowieso entsprechend gering sind.

Bei großen Shops ( = EE-Shops) sieht das anderst aus.

CYA[/QUOTE]
Ich meine, knapp 400 Kategorien ist auch noch ein eher “kleiner” Shop…

Und da sind besagte 2,3 Sekunden auf einem schnellen Server m.E. einfach zu viel…

Man kann diese Kat-Auswahlbox ja erst mal einfach weg lassen (ich habe die jedenfalls noch nie benutzt, um was zu finden…)

Problematisch wird es aber immer dann, wenn man etwas peppigere Menüs verwenden will, und denn ganzen Kategorien-Baum unbedingt benötigt.

[QUOTE=Marco Steinhaeuser;27872]Moin,

schauen wir, was mit dem Bugeintrag passiert. Manche Dinge lassen sich eben nicht wirklich als Bug oder Feature klassifizieren, dieses hier fällt in den Bereich “Maintenance”. Ich bin da dran.

Gruß[/QUOTE]
Immerhin hat er schon den Status “confirmed” bekommen…

http://www.ledick.de/ledickauslastung.png

[QUOTE=highknee88;35929]http://www.ledick.de/ledickauslastung.png[/QUOTE]
Der lädt sich einen Wolf an Artikellisten…

Aber 10 Sekunden ist doch erst mal nicht so schlecht, was hast Du geändert zur Situation vorher?

Welche Artikelliste wird da angezeigt mit 134 Seiten?

Hi,

es gibt noch einen netten Performacekiller: Preiskategorien. Wenn man ein paar Artikel hat und eine Kategorie anlegt, z.B. alle Artikel von 0-20€, dann wird versucht die Kategorie bei einem leeren des Caches neu zu füllen. Die Abfrage blockiert den Shop komplett, solange das Script läuft. Wenn ein Script nur 120sek laufen darf stört es zwar ein wenig, fällt aber nicht auf. Wenn man die Scriptlaufzeit nun aber auf 600 Sek erhöht ist der Shop für 10 min nicht erreichbar. Das passiert dann bei jedem Löschen des DB Caches.

CYA

Ich kann dem hiergenannten nur zustimmen. Ich betreibe den Oxid 4.4.5 bei Strato auf einem Power Plus L Paket. Performancemäßig lief der Shop nur zeitweise problemlos. Unzählige male am Tag war die Seite nicht erreichbar und es wurde ein 500er ausgegeben. Viele Kunden sind demnach abgesprungen. Auf der Suche nach Performancekiller im Admin, habe ich die Funktion “Kategoriebaum für die Suche laden” deaktiviert. [B][I]Es ist unglaulich was das an Geschwindigkeit ausmacht[/I][/B]. Bisher konnte ich nichts negatives bemerken und wirklich wichtig scheint mir die Funktion auch für Kunden nicht zu sein. Hat jemand vielleicht noch einen Tip um die Geschwindigkeit zu verbessern? Hat jemand Erfahrung mit “FastOxid” gemacht?

Gruß, Shopss