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