PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

29-01-2008, 16:13
|
Kalli1990
Newbie
|
|
Registriert seit: May 2007
Beiträge: 78
|
|
Performance
Hallo
Ich möcht die Performance meiner Website so gut wie möglich haben.
Was ist dabei zu beachten ?
Kleine Frage:
werden IF-Bedingungen, wo der geprüfte wert FALSE ist, trotzdem durchgegangen oder werden sie dann ignoriert?
Danke
|

29-01-2008, 16:20
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Zitat:
werden IF-Bedingungen, wo der geprüfte wert FALSE ist, trotzdem durchgegangen oder werden sie dann ignoriert?
|
Wenn Du fragst, ob mit AND in einem IF-Statement dahinterliegende Abfragen trotzdem geprüft werden: Meines Wissens nein.
|

29-01-2008, 16:23
|
jahlives
Master  
|
|
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
|
|
Zitat:
werden IF-Bedingungen, wo der geprüfte wert FALSE ist, trotzdem durchgegangen oder werden sie dann ignoriert?
|
Du meinst ob der Code ausgeführt wird WENN die Bedingung nicht erfüllt wird? Hoffentlich nicht sonst müsste ich alle meine Scripts umschreiben 
Wenn du damit aber meinst ob der Parser den Code trotzdem parst, dann ein klares JA. Kannst du einfach testen in dem du in eine Bedingung welche nicht erfüllt wird im folgenden Block mal ein ; am Ende der Zeile weglässt. Ob die Bedingung zutrifft oder nicht juckt den Parser wenig, es ist ein Fehler drin und der wird angemotzt.
Gruss
tobi
|

29-01-2008, 16:27
|
Kalli1990
Newbie
|
|
Registriert seit: May 2007
Beiträge: 78
|
|
Ok das Zweite war gemeint danke.
Wird das bei PHP6 anders sein?
Damit würde doch die Performance besser oder ?
|

29-01-2008, 16:33
|
H2O
PHP Junior
|
|
Registriert seit: Jul 2007
Beiträge: 937
|
|
Zitat:
Original geschrieben von Kalli1990
Ok das Zweite war gemeint danke.
Wird das bei PHP6 anders sein?
|
Ich glaube kaum, da zur Parse-Zeit die Werte ja noch gar nicht zwingend bekannt sind.
__________________
Gruss
H2O
|

29-01-2008, 16:34
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Zitat:
Original geschrieben von Kalli1990
Ok das Zweite war gemeint danke.
Wird das bei PHP6 anders sein?
Damit würde doch die Performance besser oder ?
|
Vergiß den Quatsch. Die paar Millisekunden hin oder her, und das auch noch auf Kosten sauberen codes. Nee. Laß die Optimierung auf diesem Level (AUßer es geht um mehrere hunderttausend solcher Abfragen) und konzentrier dich auf wichtige Optimierungsmöglichkeiten. Das sind namentlich Caching (in Verbindung mit einer Template-Engine), optimierte Datenbankabfragen, saubere Dateioperationen und vorkompilierter Code wie z.B. mit dem Zend Optimizer.
Wenn Du mehr Infos willst, mußt Du uns schon etwas konkretere Informationen liefern, und genauere Fragestellungen und was du vorhast.
|

30-01-2008, 13:30
|
Kalli1990
Newbie
|
|
Registriert seit: May 2007
Beiträge: 78
|
|
Ok ich habe mir was angeschaut aber nicht so ganz verstanden.
das hier:
PHP-Code:
<?php
//der Dateiname wird ohne die Endung "php" extrahiert:
$filename= basename($PHP_SELF,"php");
//nun wird nachgeschaut, ob schon die entsprechende Chachedatei im Cacheverzeichnis existiert:
if (file_exists("my_cache/".$filename."html")) {
//wenn sie existiert, leitet die folgende Zeile den Request auf die Cachedatei um
header("Location:my_cache/".$filename."html");
} else{
//wenn sie aber noch nicht existiert, wird in der nächsten Zeile ein
//Output-Buffer gestartet, in dem der gesamte Inhalt gespeichert (gepuffert) wird, ohne ihn zunächst auszugeben
ob_start();
?>
hier folgt nun der zu cachende Inhalt
<html>
<body>
hier liegen jede Menge Datenbankabfragen etc.
</body>
</html>
<?php
//der Inhalt des Puffers wird in $content abgelegt
$content=ob_get_contents();
//eine Datei mit dem Namen "$filename.cache" wird im Cacheverzeichnis angelegt
$fh=fopen ("my_cache/".$filename."cache", "w");
//der Pufferinhalt wird in diese Datei geschrieben
fputs ( $fh, $content);
fclose($fh);
//die Datei wird auf ihren endgültigen Namen (Endung "html") umbenannt:
rename ("my_cache/".$filename."cache", "my_cache/".$filename."html");
ob_end_flush ();
}
?>
Was genau wird da gemacht ?
Muss ich das auf jeder meiner Seiten machen ?
Und was passiert da ?
Is das Ähnlich wie INCLUDE?
Danke
|

30-01-2008, 13:37
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Für lange Erklärungen hab ich grad nicht die Zeit, vielleicht findet sich ja jemand, ansonsten mußt du dich halt selbst einarbeiten.
Hast du denn einen konkreten, akuten Grund für die Beschäftigung mit dem Thema. Da hab ich nämlich meine Zweifel.
|

30-01-2008, 13:47
|
jahlives
Master  
|
|
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
|
|
Was sagen dir die Kommentare denn? Habe selten ein so gut kommentiertes Script gesehen...
Im Groben prüft der Code ob für eine bestimmte Seite bereits eine Cache Datei angelegt wurde. Wenn ja dann wird der User auf diese Cache Datei weitergeleitet, falls nein dann legt das Script diese Datei erst an und leitet dann den Benutzer darauf weiter
|

30-01-2008, 13:48
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.105
|
|
Das ist ein ganz simples Caching. Das funktioniert mit den Ausgabekontrollfunktionen, indem die erste Ausgabe der Datei in eine Datei geschrieben wird. In den Folgeaufrufen wird dann immer diese gecachte Datei aufgerufen.
Der Vorteil dadran ist, das die Seite nur einmal erzeugt werden muss und anschließend immer aus dem Cache kommt. Aber genau das ist auch der Nachteil: Ändert sich etwas an der Seite, musst du vorher die entsprechende gecachte Datei löschen. Ich glaube bei Smarty wird das Thema ganz gut erklärt, allerdings komme ich momentan nicht auf die Seite.
|

30-01-2008, 13:52
|
Kalli1990
Newbie
|
|
Registriert seit: May 2007
Beiträge: 78
|
|
OK habe verstanden 
Ich brauche es nicht. Denn nach so ziemlich jedem Neuladen meiner Seite wird sich etwas ändern weil ich gerade an eine RealTimeBrowsergame arbeite
Aber danke
|

30-01-2008, 13:57
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.105
|
|
Zitat:
OK habe verstanden 
Ich brauche es nicht. Denn nach so ziemlich jedem Neuladen meiner Seite wird sich etwas ändern weil ich gerade an eine RealTimeBrowsergame arbeite
Aber danke
|
Auch da kann Caching zum Einsatz kommen, wenn auch nicht auf so rudimentärer Art und Weise. Du hast sicher statische Teile in der Seite, die sich nur selten bis nie ändern aber dennoch immer Ausgegeben werden müssen. Denke nur mal an eine Navigation, die aus der Datenbank geladen wird. Bei jedem Aufruf kommen die Daten aus der Datenbank. Da bietet sich zum Beispiel ein Cache an.
|

30-01-2008, 14:06
|
Kalli1990
Newbie
|
|
Registriert seit: May 2007
Beiträge: 78
|
|
Stimmt.
Name,Punkte,Koordinaten das bleibt ja alles gleich 
Danke.Dann werde ich es mal versuchen
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|