Heim >Backend-Entwicklung >PHP-Tutorial >Die PHP-R-Sprache analysiert die Reaktionszeit der Website

Die PHP-R-Sprache analysiert die Reaktionszeit der Website

巴扎黑
巴扎黑Original
2016-11-12 15:28:231722Durchsuche

Erstellen Sie einen Webcrawler, um bestimmte Inhalte auf der Webseite zu erfassen. Ein älterer Doktorand hat schon einmal eine geschrieben, aber der Lehrer meinte, es dauerte zu lange und hatte nur Tausende von Daten. Diesmal wurde ich gebeten, zuerst eine Machbarkeitsstudie durchzuführen, und das musste ich auch Verwenden Sie die R-Sprache.

Bei diesem Experiment gibt es zwei Schwierigkeiten, oder tatsächlich gibt es nur eine, und das ist die standardisierte Darstellung der Daten. Ich habe PHP noch nie zum Lesen und Schreiben von Dateien verwendet, dies ist das erste Mal. Was berücksichtigt werden muss, ist die Häufigkeit des Lesens und Schreibens von Dateien. Obwohl es sich nur um ein Experiment handelt, muss dennoch die Effizienz berücksichtigt werden. Zu häufiges Lesen und Schreiben von Dateien und zu zeitaufwändige Vorgänge auf der Festplatte sind ein großes Problem. Dies muss also berücksichtigt werden. Tatsächlich ist es eine Frage des Formats der Daten, in welchem ​​Format sie gespeichert werden. Wir müssen die nachfolgende Verarbeitung der R-Sprache berücksichtigen. Die R-Sprache kann Klartext verarbeiten, und zwischen Daten können Trennzeichen wie Kommas oder sogar Tabulatoren verwendet werden. Daher sollen die Daten in der Datei durch Kommas getrennt werden.

Fügen Sie zuerst den PHP-Code ein
include ("php_lib/LIB_http.php");
$target ="http ://www.*****";
$ref = "http://www.*****";
$filename = 'sitevisitors.txt';


$first=microtime(get_as_float);
for($n=0;$n<5000;$n ){
$betime=microtime(get_as_float);
$return_arry = http_get_withheader($ target,$ref);
$finidown = microtime(get_as_float);
$resulttime = $finidown -
$count[$n] = $resulttime; [$n]."n";
echo "n".$n;}
$fp = fopen("data.txt", "a"//fputs ( $fp, "$count[0]");
for($n=0;$n<5000;$n ){
fputs($fp, "rn".$count[$n]) ;
}
$last=microtime(get_as_float);
fclose ($fp); echo"n the time is:".$result;

Da die Veröffentlichung dieser Website unpraktisch ist, werden die Verbindungsadresse und die Hostadresse durch * ersetzt. Bitte haben Sie Verständnis. Das Programm entwirft zunächst ein Array mit 5000 Elementen, sendet dann 5000 HTTP-Anfragen und zeichnet jedes Mal die Zeit auf. Diese Zeit scheint in der http-Nachricht enthalten zu sein, aber ich kann mich nicht genau daran erinnern, also verwende ich die Funktion microtime(). Beachten Sie, dass Sie get_as_float hinzufügen müssen, um die Subtraktion durchzuführen, und include ("php_lib/LIB_http. php"); Alle PHP-Hinweise blockieren.

Alle Daten werden in die Datei data.txt geschrieben. Es ist zu beachten, dass das Dateidatenformat eine Matrix sein sollte. Auch wenn nur eine Datenquelle vorhanden ist, ist dies der Fall Das heißt, jeweils nur eine Spalte. Die Daten belegen eine Zeile und können nicht nacheinander geschrieben werden. Sie können beispielsweise nicht 1,2,3,4... lauten, sondern sollten lauten:
1
2
3
4
...

Der Grund, warum ich das mache, liegt an der R-Sprache. Die R-Sprache liest und schreibt Matrizen, daher ist es die bequemste Art zu schreiben (dort). ein besserer Weg sein, aber ich weiß es nicht).

Nachdem Sie die Zeit ermittelt haben, öffnen Sie die R-Sprachumgebung und erstellen Sie dann Statistiken:
① Lesen Sie die Daten:
data<-read.table("data.txt",header=FALSE, sep=" ,",col.names=c('num'))
② Ermitteln Sie den Durchschnitt:
mean(data[,1])
Beachten Sie, dass es sonst nicht mean(data) sein kann Die folgende Warnung wird angezeigt:
[1] NA
Warnmeldung:
In mean.default(data): Der Parameter ist kein numerischer Wert oder logischer Wert: Antwort NA
data[, 1] stellt die erste Spalte der Matrixdaten dar (Tatsächlich gibt es hier nur eine Spalte, aber sie muss so geschrieben werden).
③ Ich möchte ein Streudiagramm zeichnen, aber die Koordinatengenauigkeit ist zu gering, um es zu unterscheiden. Wir müssen die Forschung fortsetzen:
c<-data[,1]
mydata<-rbind(c,c )
mydata<-as.data.frame(mydata)
namse(mydata)<-c("x","y")
with(mydata,plot(x,y,pch= 19 ,main="das Ergebnis")

Das Bild ist gezeichnet, aber die Koordinatengenauigkeit beträgt nur 2 Nachkommastellen. Es wird derzeit untersucht, wie die Koordinatengenauigkeit verbessert werden kann nicht mehr verfügbar. Denken Sie einfach darüber nach.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn