2

我正在开发一个最近转换为 PHP(以前是 VB.net)的站点,而新的 PHP 站点运行速度非常缓慢(在此处插入 PHP 笑话)。

www.silhouetteonlinestore.com

所以我做的第一件事就是优化我的代码,在我能找到的每个地方进行调整,但它对加载时间的帮助可能超过 50 毫秒。然后我在 web.config 中取消了 URL 重写,这实际上将加载时间缩短了一半,但仍然不能接受。

然后我发现了这个:

  • www.silhouetteonlinestore.com/php/test.php(运行缓慢)
  • www.silhouetteonlinestore.com/php/test.html(运行速度快)
  • www.silhouetteonlinestore.com/php/test.aspx(运行速度很快)

上述三个文件都运行相同的静态 HTML 代码,标签中带有“test”一词,但 PHP 的运行速度很慢!具有相同配置的站点的测试版本,在同一台服务器上,运行速度极快,因此无论问题是什么,似乎都因站点上的额外流量而加剧。但是我们没有数以百万计的人访问该网站或任何其他东西——我们平均在任何特定时刻浏览该网站的用户有 300-500 人。

配置:

  • IIS 6.0 上的 PHP 5.2.17,使用 FastCGI
  • 托管在 Windows 2008 服务器上,配备四核 AMD Opteron(tm) 处理器 2374 HE 2.20 GHz
  • 8 GB 内存
  • 64 位操作系统

我对服务器管理不是很有经验,因此感谢您的帮助。我的第一个预感是升级到 PHP 5.4.4,因为那里可能存在兼容性问题,所以我将继续努力;不久前我尝试这样做,但无法使其正常工作(phpinfo()显示某些设置仍然认为它是5.2,并且我认为有一个未设置的环境变量或其他东西)。

让我知道我遗漏了哪些其他重要信息;我真的很感谢你的时间!

4

1 回答 1

1

要找出导致问题的原因,您应该尝试以下操作:

  1. 您需要查看 PHP 的严格、通知、错误和警告消息。您可以通过编辑 PHP.ini 来做到这一点。请参阅PHP 手册的 errorfunction 部分。注意我实际上会编辑 php.ini 文件而不使用ini_set()因为问题可能发生在第一次调用发生之前ini_set()
  2. 为 IIS安装PHP 管理器并查看它添加到 IIS 管理器的部分中的警告。它会对您的 php.ini 文件有什么问题提出一些建议。我从未见过它检测到显着降低 PHP 速度的问题,但它肯定有可能。
  3. 使用Process Monitor分析对 php.exe 的调用,看看是否有任何失败的文件调用等。
于 2012-12-10T17:54:17.597 回答