Shadowman Geschrieben 5. August 2011 Geschrieben 5. August 2011 Momentan verwende ich in einem Script die Funktion file_get_contents($url), welche jedoch ab einer gewissen Menge an Aufrufen Probleme macht. Um mal genaue Dimensionen zu liefern: ~200.000 Aufrufe sind gepant, jedoch dauert es schon bei 10 Aufrufen sehr lange. Leider bin ich total überfragt, was die massive Verzögerung der Ausgabe angeht, denn der Server von dem ich etwas auslesen möchte hat eine Antwortzeit von konstanten 8ms. Weiß jemand woran es liegt, dass die Funktion selbst bei kleinen Strings und wenigen Aufrufen so lange braucht, um eine Antwort zu liefern? Als nächstes wäre die überlegung, wie ich den Prozess der Datengewinnung beschleunigen kann. Kennt jemand spontan performantere Methoden um die Seiten auszulesen? Mfg Shadowman Zitieren
axxis Geschrieben 5. August 2011 Geschrieben 5. August 2011 Hi, zuerst: Ich bin kein Programmierer und kann dir nicht sagen ob jetzt z.B. fopen o.A. performancetechnisch besser geeignet wären. Aber: Was genau möchtest du mit deinem Skript realisieren? Was genau ist bei dir "lange" (bezogen auf die 10 Aufrufe? An welchen Server stellst du die Anfragen? Möglicherweise ist die Kiste einfach unterdimensioniert oder gut konfiguriert (ich denke an z.B. an das Apache Modul mod_qos, welches dir bei einer bestimmten Anzahl an gleichzeitigen Anfragen einfach die Verbindung dicht macht bzw. drosselt). Gruß axxis Zitieren
Shadowman Geschrieben 5. August 2011 Autor Geschrieben 5. August 2011 An fopen habe ich garnicht gedacht, wobei ich dann nicht sicher bin, ob ich bei fopen das selbe Ergebnis erhalte. Das werde ich aber nachprüfen. Danke dafür schonmal Das Script ist dafür gedacht zu unbestimmten Zeiten mehrere externe Seiten zu analysieren und mich zu informieren, wo unstimmigkeiten sind. Lange lässt sich gerade schwer definieren, aber ich glaube, dass ess pro anfrage ~1,25 sec waren. Somit wären es bei 10 aufrufen schon 12,5 sec. Zu den Infos des Servers kann ich leider nichts sagen, da es nicht mein Server ist und diese Informationen nicht öffentlich gemacht wurden Zitieren
Shadowman Geschrieben 5. August 2011 Autor Geschrieben 5. August 2011 (bearbeitet) Ich habe gerade ein kleines Messungsscript geschrieben, welcher jedoch ganz andere Zahlen liefert als erwartet. kleinstes Ergebnis: file_get_contents: 1.27939319611 Sekunden fopen: 1.05678582191 Sekunden größtes Ergebnis: file_get_contents: 10.7561900616 Sekunden fopen: 9.56712818146 Sekunden Das sind die Zeiten von 1 Anfrage an die selbe Seite mit beiden Methoden Bearbeitet 5. August 2011 von Shadowman Zitieren
axxis Geschrieben 5. August 2011 Geschrieben 5. August 2011 Ich nehme an, du hast keinen Zugriff auf die Server, welche du abfragst? Hast du dir mal angeschaut, ob die Seite an sich lahmt? (z.B. mit der Netzwerkanalyse von Firebug o.Ä.)? Wenn du uns die Links zur Verfügung stellst, könnte man ausschließen, dass der Bottleneck auf deiner Seite besteht. Zitieren
Shadowman Geschrieben 5. August 2011 Autor Geschrieben 5. August 2011 (bearbeitet) Nein, leider habe ich keinen Zugriff auf die Seite. Wie geht das denn mit der Netzanalyse von Firebug? Bin kein begeisterter FF nutzer EDIT: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Cookie: PHPSESSID=d6f99022aedc7acecc8df1b17677ffd6 Date: Fri, 05 Aug 2011 16:01:34 GMT Server: Microsoft-IIS/6.0 X-Powered-By: PleskWin, ASP.NET, PHP/5.2.6 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Type: text/html Content-Length: 11769 GET URL Status: 200 OK Größe: 11,5 KB Zeitlinie: 3,34s Bearbeitet 5. August 2011 von Shadowman Zitieren
axxis Geschrieben 5. August 2011 Geschrieben 5. August 2011 11,5KB in 3 Sekunden. Schon ganz schön happig. Eigentlich kanns nur daran liegen: Server: Microsoft-IIS/6.0 *scnr* Aber im Ernst: Bei der Netzwerkanalyse vom Firebug siehst du ja, welcher Request am längsten dauert. Grund dafür kann vieles sein: schlechter Code, schlechte Konfig, externe Aufrufe an z.B. Tracking-Systeme oder wahlose fopen's zu anderen Seiten Wie gesagt, um dich wirklich auszuschließen, könnte ich die Verbindung auch mal überprüfen. Sollte das nicht so sein, hast du eben die Karte gezogen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.