contao/core — pull request #3737 by tristanlins (2011-12-30 12:11:06+00:00)
Title: Improve dca save performance

Die Methode DC_Table::edit() ruft DataContainer::row() für jede Box und jedes Feld auf.
Die Methode DataContainer::row() selbst ruft wiederum DC_Table::getPalette() bei jedem Aufruf auf. (die bereits in DC_Table::edit() einmal aufgerufen wurde).
Bei komplexen Paletten (viele __selector__ Felder) steigt der Aufwand für jeden Speichervorgang exponentiell an. Bei 16 Feldern rennt mein Server bereits in die 30 Sekunden max_execution_time.
Der Patch übergibt die Palette an DataContainer::row() und verhindert so den erneuten Aufruf von DC_Table::getPalette() bei jedem Aufruf.

Alternativ könnte man auch das Ergebnis von DC_Table::getPalette() auch cachen, ich weiß aber nicht, ob das eventuell noch weitere Nebeneffekte hätte.