GX-Bug #69485
offenErstellung der Sitemap ist zu speicherintensiv | Creation of the sitemap is too memory intensive
0%
Beschreibung
Erstellung der Sitemap ist zu speicherintensiv, bei großen Datenmengen kommt diese schnell an das memory_limit und max_execution_time
Hier wird jede Kategorie einzeln exporitert und in den Speicher die URLs geschrieben, aber wenn eine Kategorie viele Unterkategorien hat, dann bleiben diese URLs alle im Speicher bis die XML Datei für diese Kategorie zu Ende geschrieben wurde.
Das ist bei großen Kategoriestrukturen ein Speicherproblem. Der Speicher sollte sofort wieder freigegeben werden, wenn die URLs in dei XML Datei geschrieben wurde.
Kann wie folgt reproduziert werden:
- Shop mit einer extrem großen Kategoriestruktur vorbereiten
- Gambio Admin öffnen
- Unter "Einstellungen->Sitemap generator" Button "Sitemap erstellen" klicken
- Browserkonsole öffnen mit F12 und sehen, dass viele Ajax Request einer nach dem anderen ablaufen.
- Die Zeit zwichen den Ajax Requests werden je mehr Requests es werden immer größer.
- Irgendwann dauert ein Request mehr als eine Minute oder noch länger.
Erwartetes Verhalten:
Wenn man eine Sitemap erstellt, dann sollte nicht so viel Speicher verbraucht werden, die Sitemap URLs sollten direkt in dei XML Datei geschrieben werden, sodass die URLs nicht zwischengespeichert werden.
Sobald die Datei geschrieben wurde, ist es unnötig die URLs alle noch im Speicher zu halten
Tatsächliches Verhalten:
Beim Erzeugen der Sitemap wird jede URL im Speicher gehalten und dann am Ende einer Kategorie erst in die XML Datei geschrieben, was bei großen Kategoriestrukturen PHP Memory_limit und max_execution_time übersteigt.
Creation of the sitemap is too memory intensive, with large amounts of data this quickly reaches the memory_limit and max_execution_time.
Here each category is exporited individually and in the memory the URLs are written, but if a category has many subcategories, then these URLs all remain in the memory until the XML file for this category was written to the end.
This is a memory problem with large category structures. The memory should be freed immediately when the URLs are written to the XML file.
Can be reproduced as follows:
- prepare store with an extremely large category structure.
- open Gambio Admin
- under "Settings->Sitemap generator" click button "Create sitemap
- open browser console with F12 and see that many Ajax request run one by one.
- the time between the ajax requests becomes longer and longer the more requests there are.
- sometime a request takes more than a minute or even longer.
Expected behavior:
When creating a sitemap, it should not consume so much memory, the sitemap URLs should be written directly to the XML file, so the URLs are not cached.
Once the file is written, it is unnecessary to keep the URLs all still in memory
Actual behavior:
When creating the sitemap, each URL is kept in memory and then written to the XML file at the end of a category first, which exceeds PHP memory_limit and max_execution_time for large category structures.