Zum Inhalt springen

[PHP] Probleme mit file_get_contents($url)


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von Shadowman
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von Shadowman
Link zu diesem Kommentar
Auf anderen Seiten teilen

11,5KB in 3 Sekunden. Schon ganz schön happig.

Eigentlich kanns nur daran liegen:

Server: Microsoft-IIS/6.0

*scnr* :P

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...