phpbar.de logo

Mailinglisten-Archive

[php] performance von klassen?

[php] performance von klassen?

Ulf Wendel UW_(at)_NetUSE.DE
Mon, 22 May 2000 13:02:29 +0200


Marco Gabriel wrote:
> hat jemand erfahrungen gemacht, inwiefern die performance sinkt
> (oder
> steigt?) wenn ich klassen verwende anstatt php-code in die
> html-seite rein
> zu fitscheln? ist mir mein webserver böse, weil er dann etwas mehr
> ins
> schwitzen kommt?

Die Frage ist wirr. Klassen sind ein Begriff aus der
Objektorintierten Programmierung, einzelne Codepassagen können
sehr lang sein und (theoretisch) durchaus mit HTML Code vermixt
sein.
Was Du wissen willst, ist: "Sind inlude/requiere
performancerelevant". Dies ist zu verneinen. Der zusätzliche
Zugriff auf das Filesystem der Maschine kostet praktisch keine
Zeit, der Cache sollte voll zuschlagen.

Interessanter ist die Frage, ob man massiv objektorientiert in
PHP3 programmieren sollte. Das ist von der reinen Perfomancesicht
her zu verneinen. Füll mal ein Array mit Integern und finde
heraus wann die Aufgabe besonders schnell gelöst wird. Hierbei
testes Du die Varianten: globale Variable, lokale
Funktionsvariable, lokale Variable in einer Methode und
Instanzvariable aufgebaut durch eine Methode. Die Reihenfolge der
Nennung sollte die Geschwindigkeit wiederspiegeln. Ich habe
Unterschiede zwischen der globalen Variable und der
Instanzvariable von bis zu 20% gemessen.

Da die Applikationslaufzeit in die Gesamtrechnung "Webserver" nur
zu einem geringen Teil eingeht und innerhalb der
Applikationslaufzeit nochmals die nicht optimierbaren IO
Operationen abgezogen werden sollten, kann man nach meiner
Erfahrung durchaus objektorientiert in PHP3 programmieren, ohne
nennenswerte Einbußen zu erleben. 

Drei, vier oder auch mal fünf Ebenenen in der Klassenhierarchie
und durch Assoziationen nochmals eine größere Anzahl von Ebenen
(rd. 10) in der Objekthierarchie stellen meiner Erfahrung nach
jedoch die Grenze da. Angesichts der limitierten OO Fähigkeiten
von PHP3 wird aber auch niemand wirklich mehr versuchen...

PHP4 verschiebt die Grenze spürbar nach oben. Zahlen habe ich
nicht parat. Nur eines habe ich gehört: statische Klassen in PHP4
sollen langsam sein, ob's stimmt weiß ich nicht.

Ulf

-- 
Ulf Wendel
NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany
Fon: +49 431 386435 00  --  Fax: +49 431 386435 99


php::bar PHP Wiki   -   Listenarchive