PHP - Kalender sehr langsam?

soyo

Erfahrenes Mitglied
Hallo,

Ich arbeite gerad an einem kleinen Kalender. Über berechne die Zeit für die Ausführung des Scriptes und wie sie ist zu hoch für so kleine Berechnungen. Zwischen 0.5-1.0 Sekunden.
Live zu sehen hier

und hier der Code :
PHP:
$iYear = $_GET['y'];
	$iMonth = $_GET['m'];
	
	$iDaysInMonth = date("t", mktime(0, 0, 0, $iMonth, 1, $iYear));
	$iFirstWeekDay = date("w", mktime(0, 0, 0, $iMonth, 1, $iYear));

	$aStrWeekDays = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag");
	$aStrMonth = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
    $row = 1;

	echo "<tr>\n";

	for($i = 1; $i <= 7; $i++){
	  echo "<td class=\"header\">$aStrWeekDays[$i]</td>\n";
	}
	echo "<tr>\n";
	
	
	if($iFirstWeekDay > 0) echo str_repeat("<td></td>\n",$iFirstWeekDay-1);

	$j = $iFirstWeekDay-1;
	for($i = 1; $i <= $iDaysInMonth; $i++){
	  $j++;
	  echo "<td><a><div>$i</div></a></td>\n";
	  if($j == 7){
	    $row++;
	    echo "</tr><tr>\n";
	    $j = 0;
	  }
	}
	echo str_repeat("<td></td>\n",($row*7)-$iDaysInMonth-$iFirstWeekDay+1);

Kennt wer das Problem bzw wo hab ich den Fehler?

Gruß soyo
 
Für das Genannten ist die Ausführungszeit deutlich zu hoch. In der Zeit sollte mindestens das Hundertfache wenn nicht sogar Tausendfache drin sein.
 
Gibt da für mich 2 Möglichkeiten. Deine Berechnung der Scriptlaufzeit ist falsch oder dein Server ist zu beschäftigt.

Rufe ich die Seite auf, und messe mit Firebug hab ich bei 9 von 10 versuchen 16ms Ladezeit der Webseite, der 10. Versuch liegt 10-20ms drüber. Das liegt aber noch weit unter dem was du nennst.

Das Script habe ich mal bei mir auf nen webserver geschoben und per Apache Benchmark getestet. Bei 10 Connections und 1000 Aufrufen liegen die Werte zwischen 3 und 20 ms, ein Ausreisser mit 200 ist mal dabei.

Daher die Frage, wie berechnest du die Laufzeit des Scriptes?
 
So berechne ich die Zeit ...

PHP:
$time_start = microtime(true);
...
...
... 
echo microtime(true) - $timestart . "sec.";

Eventuell steckt hier schon der Fehler drin, aber ich nutzte das in jedem Script was ich teste. und dort kommen bei weitaus komplexeren Berechnungen viel kleinere Zeiten zustande.

Frohe Ostern Euch,
soyo
 
Ok, ich hab es dann auch gesehen wo ich die beiden Zeilen übereinander standen.
Danke.

Schöne Ostern euch .. soyo
 
Zurück