Meine Webseite verwendet Google-Diagramme, um fünf Grafiken zu erstellen. Wenn die Diagramme nicht bereits zwischengespeichert sind, habe ich die folgende Codezeile, die das Bild abruft.
$ image = file_get_contents ("http://chart.apis.google.com/chart?". $ Query);
Wenn dieser Code in einer Schleife ausgeführt wird, dauert es 10 Sekunden, um jedes Bild zu erhalten. Aber, wenn ich den Code ändern, um eine der IP-Adressen von Google anstelle der URL zu verwenden:
$ image = file_get_contents ("http://74.125.93.100/chart?". $ Query);
Das Abrufen der Bilder dauert weniger als eine Sekunde. Also mein erster Gedanke war, dass DNS die URL nicht auflöst und die Verzögerung vom Durchlaufen der zugewiesenen DNS-Server ausgeht? Also habe ich versucht, chart.apis.google.com vom Server aus zu pingen und es hat sofort eine angemessene Antwort zurückgegeben.
Also meine Frage ist: Gibt es irgendwelche PHP (oder Apache2) -Konfiguration Einstellung, die ich möglicherweise übersehen, dass diese Verzögerung verursachen kann, oder klingt das wie ein Serverkonfigurationsproblem?
Was ist, wenn Sie eine andere Methode zum Abrufen des Bildes wie cURL verwenden? – Matt
Welche Version von PHP? Gibt es eine Chance, dass du auf die neueste Version upgraden kannst, um zu sehen, ob das das Problem behebt? –
Ich würde einige Tests durchführen, um zu sehen, ob DNS tatsächlich das Problem ist. Sie können Ihre API-Aufrufe in einen Timing-Block einbinden. –