[TYPO3-german] PHP Ausführungszeit-Problem bei Array-Zuweisung
Chris Wolff - AERTiCKET AG
cwolff at aer.de
Fri Dec 19 09:27:17 CET 2014
Hi Till.
Typo3 hat ein timetracker $timeTracker (hab selbst noch nicht damit gearbeitet aber damit solltest du eigendlich,
in der lage sein aufrufzeiten zu protokollieren..
und so vielleicht näher an die ursache deines problems herrahnkommen.
Für each schleifen können natürlich ein problem darstellen weil sich die anzahl der operationen exponentionell erhöht.
Wenn du 2 foreach schleifen mit je 10 operationen hast.
Müssen 10*10 = 100 Operationen durchgeführt.
Wenn eine weitere mit 10 Operationen hinzukommt.
10*10*10 = 1000
Meine logik ist hier natürlich stark vereinfacht. (aber ich denke die idee ist verständlich)
Gruss chris
-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von g4-lisz at tonarchiv.ch
Gesendet: Donnerstag, 18. Dezember 2014 17:11
An: 'German TYPO3 Userlist'
Betreff: [TYPO3-german] PHP Ausführungszeit-Problem bei Array-Zuweisung
Hallo allerseits,
das Problem ist vermutlich nicht T3-spezifisch, aber vielleicht kann mir trotzdem jemand weiter helfen:
In einer Extbase Action-Funktion habe ich folgende Schleife:
$return = array(
'standorts' => array(),
'leistungs' => array(),
);
$hasStandorts = array();
foreach (....) {
foreach ($this->getStandorts() as $standort) {
$standortUid = $standort->getUid();
[...]
if(...)
$hasStandorts[$standortUid] = true;
}
}
foreach ($this->getStandorts() as $standort) {
//echo $standort->getCurrent()->getName();
if (array_key_exists($standort->getUid(),
$hasStandorts))
$return['standorts'][] = $standort->getCurrent()->getName();
}
Die Funktion bricht wegen Timeouts ab (120sec.).
Offenbar brauchen folgenden Zeilen zuviel Zeit:
$hasStandorts[$standortUid] = true; und
$return['standorts'][] = $standort->getCurrent()->getName();
Wenn ich sie auskommentiere, dauert der Aufbau der Seite max. 1 Sekunde.
Es liegt aber auch nicht an $standort->getCurrent()->getName() - wenn ich die Zeile
echo $standort->getCurrent()->getName();
aktiviere, macht dies das Ganze nicht langsamer.
Ist mir alles schleierhaft. Evlt. ein Speicherproblem?
In anderen Funktionen benutze ich genau die gleichen Zuweisungen, dort ist es aber kein Problem. Allerdings haben diese Funktionen weniger verschachtelte foreach-Schleifen. Kann das irgendwie damit zusammen hängen?
Grüße,
Till
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list