![]() Mailinglisten-Archive |
Hi Dante, > wie sehen denn deine DB-Abfragen aus? > > Vielleicht k�nntest du die Abfragen optimieren, indem du komplexere > Statements reibst, so dass nur noch eine bzw. sehr wenige DB-Abfragen > ben�tigt werden. > > K�nntest ja mal die relevanten Stellen aus deiner Klasse kopieren.. Ich habe das Problem jetzt lokalisiert, es ist ein echtes PHP Performanceproblem. Ich habe ein paar Klassen mit ca. 20 Datamembers. Diese spiegeln mir einzelne Suchabfragen wieder. Nun gibt es eine Klasse Basket, die hat ein Array von BasketItems (auch Klassen). Will ich diese updaten, ist der erste (naive) Ansatz for ($Index = 0; $Index < sizeof($this->Items); ++$Index) { $this->Items[$Index]->Quantity += $Quantity; } Geht aber net!!! Also, zweiter Ansatz: for ($Index = 0; $Index < sizeof($this->Items); ++$Index) { $Tmp = $this->Items[$Index]; $Tmp->Quantity += $Quantity; $this->Items[$Index] = $Tmp; } Wenn Items Klassen mit ca. 20 Datamembers beinhaltet, braucht PHP f�r ein 7 (SIEBEN!!!) Item grosses Array sage und schreibe 4 (VIER!!!) Sekunden. Auf einem 333er mit 256Mb. Naja, L�sung (wenn auch wirklich SUPER UNSAUBER!) function updateItem(&$Items, $Quantity) { for ($Index = 0; $Index < sizeof($Items); ++$Index) { $Items[$Index]->Quantity += $Quantity; } } updateItems($this->Items); Dann dauert das ganze nur 0.7 Sekunden!! �ndert sich das Dilemma in 4.0? Gru� Florian \\|||// | | (.) (.) ===================oOO==(_)==OOo========================= ! Florian Baumert ! ? Feldbergstr 44 ? ! D-61140 Oberursel ? ! Tel.: 0172 59 35 0 55 ! ? ===================================================== ? ! baumert_(at)_plt.de www.plt.de ! =========================================================
php::bar PHP Wiki - Listenarchive