Poniższy skrypt służy do testowania wydajności łącza oraz serwera. Funkcja test_serwera() pobiera 3 argumenty, dwa ostatnie są opcjonalnie (Pierwszy argument to URL, który ma zostać przetestowany, drugi argument wskazuje ile razy ma być powtórzony test domyślnie = 5, trzeci natomiast mówi z jaką dokładnością zostaną przedstawione wyniki domyślnie = 5, czyli tylko pięć pierwszych cyfr).
001 <?php
002
003 # Ekipa TS (http:
004
005 function getmicrotime() {
006 list($usec, $sec) = explode(" ",microtime());
007 return ((float)$usec + (float)$sec);
008 }
009
010 function test_serwera($adres, $max="5", $dokladnosc_wyniku="5") {
011
012 if($adres==""||!@is_numeric($max)||!@is_numeric($dokladnosc_wyniku)){
013 echo"Błąd: niepoprawny argument...";
014 } else {
015
016 $URL = $adres;
017 $MAX = $max;
018 $dokladnosc = $dokladnosc_wyniku;
019
020 $tablica = array();
021 $tablica2 = array();
022
023 echo"Test wydajności, wczytywania strony (".$URL.")<br>";
024
025 for($i=1;$i<$MAX+1;$i++){
026 $time_start = getmicrotime();
027 if(!@file($URL)){break;}
028 $time_end = getmicrotime();
029 $time = $time_end - $time_start;
030 $tablica[] = $time;
031 echo "<li>".$i.".) Test wydajności - (".@substr($time,0,$dokladnosc).") sek.</li><br>";
032 }
033
034 $maxczas = 0;
035 foreach($tablica as $czas){
036 $maxczas += $czas;
037 }
038
039 $srednio = $maxczas/$MAX;
040
041 echo"Łącznie: (".@substr($maxczas,0,$dokladnosc).") sek.<br>";
042 echo"Średnio: ~ (".@substr($srednio,0,$dokladnosc).") sek.<br><hr>";
043
044 echo"Test połączenia z (".$URL.")<br>";
045
046 for($i=1;$i<$MAX+1;$i++){
047 $time_start2 = getmicrotime();
048 $lacze = @parse_url($URL);
049 $f_lacze = @fsockopen($lacze['host'], "80", $errno, $errstr, 15);
050
051 if(!$f_lacze){
052 echo"<li>Błąd: ".$errno." --- (".$errstr.")</li><br>";
053 break;
054 } else {
055 $time_end2 = getmicrotime();
056 $time2 = $time_end2 - $time_start2;
057 echo"<li>Czas łączenia z serwerem: ~ ".@substr($time2,0,$dokladnosc)." sek.</li><br>";
058 $tablica2[] = $time2;
059 }
060 }
061
062 $maxczas2 = 0;
063 foreach($tablica2 as $czas2){
064 $maxczas2 += $czas2;
065 }
066
067 $srednio2 = $maxczas2/$MAX;
068
069 echo"Łącznie: (".@substr($maxczas2,0,$dokladnosc).") sek.<br>";
070 echo"Średnio: ~ (".@substr($srednio2,0,$dokladnosc).") sek.<br>";
071 }
072
073 }
074
075 # Wywołanie Testu
076
077 # np. najbardziej optymalne
078
079 test_serwera('http://wp.pl');
080
081 ?>
Przykład użycia:
Test wydajności, wczytywania strony (http://wp.pl)
1.) Test wydajności - (5.668) sek.
2.) Test wydajności - (5.384) sek.
3.) Test wydajności - (4.816) sek.
4.) Test wydajności - (6.223) sek.
5.) Test wydajności - (5.585) sek.
Łącznie: (27.67) sek.
Średnio: ~ (5.535) sek.
Test połączenia z (http://wp.pl)
1.) Czas łączenia z serwerem: ~ 0.099 sek.
2.) Czas łączenia z serwerem: ~ 0.090 sek.
3.) Czas łączenia z serwerem: ~ 0.228 sek.
4.) Czas łączenia z serwerem: ~ 0.090 sek.
5.) Czas łączenia z serwerem: ~ 0.140 sek.
Łącznie: (0.649) sek.
Średnio: ~ (0.129) sek.
Pobierz Skrypt