[TYPO3-german] PHP Ausführungszeit-Problem bei Array-Zuweisung
g4-lisz at tonarchiv.ch
g4-lisz at tonarchiv.ch
Fri Dec 19 19:39:02 CET 2014
Hi Chris,
danke für die Erläuterungen! Ist mir schon klar mit den verschachtelten
Schleifen. Ich kam nur nicht auf die Idee, dass die nicht nur in der
Action sondern auch im Fluid-Template waren ;)
Konnte das Problem nun umgehen mit dem Alias-Viewhelper, so dass die
Action vom Fluid-Template nur einmal aufgerufen wird.
Grüße,
Till
On 12/19/2014 09:27 AM, Chris Wolff - AERTiCKET AG wrote:
> 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?
>
More information about the TYPO3-german
mailing list