【发布时间】:2011-12-27 16:19:54
【问题描述】:
我的网页使用 Google 图表生成五张图表。如果图形尚未缓存,我有以下代码行来检索图像。
$image = file_get_contents("http://chart.apis.google.com/chart?".$query);
当循环执行该代码时,获取每个图像需要 10 秒。但是,如果我将代码更改为使用 Google 的 IP 地址之一而不是 URL:
$image = file_get_contents("http://74.125.93.100/chart?".$query);
检索图像只需不到一秒钟的时间。所以我最初的想法是 DNS 没有解析 URL,延迟是来自循环分配的 DNS 服务器?所以我尝试从服务器 ping chart.apis.google.com,它立即返回了合理的响应。
所以我的问题是:是否有任何我可能忽略的 PHP(或 Apache2)配置设置可能导致此延迟,或者这听起来像是服务器配置问题?
【问题讨论】:
-
如果您使用其他方法来检索图像,例如 cURL,该怎么办?
-
PHP 的哪个版本?您是否有机会升级到最新版本,看看是否能解决问题?
-
我会做一些测试,看看 DNS 是否真的是问题所在。您可以将 API 调用包装在一个计时块中。
-
感谢所有回复的人。这个问题肯定与 DNS 相关,我的任务是弄清楚它是否与 PHP 或 Apache 相关。我已经使用不同的 DNS 服务器测试了服务器,但无济于事。如果我发现任何进一步的东西会更新。
标签: php