Hi,
Normalerweise ist der Zend-Optimierer in den meisten Fällen mit drin, wenn nicht: einbauen. (Falls Dir die Lizenz zusagt natürlich). Das reicht meist schon.
Aber so viel bringt der ja auch nicht. Was viel bringt ist der Zend-Cache, aber der kostet.
Also sagt Dir die Lizenz nicht zu ;-)
Als Alternative gibt es den PHP-Accelerator:http://phpaccelerator.co.uk/
Den setze ich immwen wenn möglich ein, funktioniert super und ist "angeblich" genauso schnell wie der Zend-Cache.
Oder so, ja stimmt, hatte ich vergessen.
Aber prinzipiell: wenn die Geschwindigkeit ausreicht - also keine Anfrage weggeschmissen wird, weil der Prozessor am Anschlag arbeitet oder kein Speicher mehr frei ist, oder gar andere Programme beeinträchtigt werden - und die Funktion gegeben ist, ist Optimierung nicht nötig. Die Kosten für die Handoptimierung von Skripten ist meistens höher, als das Neuschreiben in einer niedriger angesiedelten Sprache (z.B. C), wenn Du nicht gerade grobe Schnitzer eingebaut hast.
Nur lässt sich das gerade in größeren Projekten schlecht einbauen. Ich habe z.B. das problem dass ich eine sehr komplexe HTML-Tabelle erzeugen muss(zum Teil aus mehreren 1000 Datensätzen aus verschiedenen Tabellen...), ich arbeite überall mit Templates und Datenbank-Abstraktion, durch das gesamte Projekt, und das stellt hier schon eine Bremse dar. Es kommt drauf an wie groß die HTML-Tabelle wird, aber bei den ganz großen die ich mal testweise probiert habe hat es teilweise über 15 Sekunden gedauert, und so lange wartet man ungern, und dabei war der Server sonst unbenutzt und ist eigentlich verhältnismäßig schnell.
Dann ist die Frage: wie oft kommt sowas vor, sprich: wie lante dauert das durchschnittlich. Wenn es nur Spitzen sind, kann es akzeptabel sein.
Es istauch möglich, das Deine Tabellenerzeugung selber einfach zu lange dauert. Baust Du zuerst die ganze Tabelle zusammen, oder hast Du die Möglichkeit, Zeile für Zeile auszuwerfen? Das dauert dann zwar nicht weniger lang, aber dafür bekommt der Client schonmal Daten und kann sie direkt anzeigen. Ist dann subjektiv deutlich schneller.
Ich wüßte nicht wie C mir hier helfen könnte. Oder meinst Du einfach den Algorithmus in C Programmieren und das dann per CGI einbinden?
Das kann ich schlecht sagen, dafür bräuchte ich dann schon den Code.
Aber per CGI einzubinden ist schlecht, wenn schon dann als PHP-Lib direkt an PHP anbinden und dann auch _nur_ den Algorithmus.
Aber sowas mag ich nicht, das habe ich schon aus einem anderen Grund mit einigen PERL-Scripten machen müssen, und dann muss ich auf einmal auch alle möglichen Konfigurationsdateien einlesen, was ich für die PHP-Scripte einmal an zentraler Stelle mache...
Deshalb die direkte Anbindung, das spart den ganzen Driss.
Oder eben wirklich _alles_ in C (oder C++ oder Assembler oder ...). Es kommt aber auch auf den Zweck an. Bei viel Rechenarbeit lohnt sich das, aber wenn das alles nur aus SQL Abfragen und daraus HTML herstellen besteht, ist der Effekt sehr gering.
so short
Christoph Zurnieden