contao/issues — Issue #609: Performance Verbesserung: Ergebnis von listFields in Database.php cachen
Author: importer
Created: 2011-11-24 15:40:40+00:00
State: open
Labels: Feature, framework

Hi Leo,
Bei einer Analyse bzgl. kleinerer Performance-Problemchen ist mir aufgefallen, dass die Funktion Database::listFields für die gleiche Tabelle je nach Seiteninhalt mehrfach aufgerufen wird (bei einer Beispielseite bei uns z.B. 63 mal). Der Rückgabewert ist natürlich immer der gleiche. Durch ein Cachen dieses Rückgabewertes konnte ich die Zeit zur Erzeugung der Beispielseite auf die Hälfte reduzieren.
Folgendes habe ich geändert:
in system/Database.php neue Variable

```
protected $cachedFieldLists;
```

und Änderung von listFields in:

```
public function listFields($strTable)
{
if (!isset($this->cachedFieldLists[$strTable])) {
$this->cachedFieldLists[$strTable] = $this->list_fields($strTable);
}
return $this->cachedFieldLists[$strTable];
}
```

Spricht etwas dagegen und sollte die Änderung vielleicht in den Typolight-Kern übernommen werden?

--- _Originally created by anonymous on March 20th, 2009, at 11:40am (ID 609)_