phpbar.de logo

Mailinglisten-Archive

[php] PHP - Performance zusammen mit postgresql

[php] PHP - Performance zusammen mit postgresql

Florian Baumert baumert_(at)_plt.de
Sun, 22 Aug 1999 10:58:19 +0200


Hallo allerseits,

 ich habe da ein Performanceproblem!

Für  eine  recht  komplexe Shop-Lösung benötige ich zur Bestimmung des
Preises  eine  Reihe  von  DB-Abfragen.  Sind  ein bis zwei Artikel in
meinem  Warenkorb,  so  ist die Performance ok. Sobald aber die Anzahl
der  Artikel  nach  oben  geht  (sagen wir: 5), benötigt PHP holen und
berechnen  der  Preise  sage  und  schreibe  drei  Sekunden. Wie schon
gesagt, es werden mehrere DB-Abfragen pro Artikel getätigt.

An  der  DB_Struktur  kann ich nichts ändern, die ist fest vorgegeben.
Was  mir allerdings auffiehl ist die Tatsache, daß in der Zeit, wo die
Daten  berechnet/geholt  werden, der postmaster-Prozeß nur 4% CPU Zeit
verbrauchte,  der  httpd (und damit php) aber knapp 95%. Kann es sein,
daß dies gar kein DB-Problem ist, sondern einfach nur eine Ineffizienz
im PHP?

Ich  arbeite  ziemlich  viel mit Klassen. Z.B. hat die Warenkorbklasse
ein Array von Itemklassen. Diese Items werden dann in die Berechnungen
gesteckt  und,  da man nicht über $Basket->Items[1]->ProductId auf die
einzelnen  Items  zugreifen  kann.  Ist  die  Berechnung  für ein item
erfolgt,   so   wird  es  in  das  Array  zurückkopiert  -  reichlich
Ineffizient.

Gibt  es eine Möglichkeit, sich eine Referenz auf ein Objekt zu holen?
Wenn  ich  ein  $Item = $Basket->Items[1]; schreibe, wird ja immer die
ganze Klasse kopiert. Ein $Item = &$Basket->Items[1]; (in Anlehnung an
Referenzen in Funktionen) wäre wesentlich effizienter.

Vielen Dank


       Florian Baumert

                      \\|||//
                      |     |
                      (.) (.)
===================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