php突然非常非常慢

时间:2009-10-15 19:28:52

标签: php apache firefox

我正在使用php,apache和mysql开发webapp。在过去的一年中,这个应用程序的响应时间一直很好。突然昨天应用程序在firefox上变得非常慢(完整页面加载,包括css和js文件:大约20秒。在页面加载期间,firefox完全无法使用)。有趣的是,IE中的响应时间稍慢(大约2秒而不是<1秒)。

奇怪的是:应用程序在两天前工作正常,并且无处不在变得非常缓慢。我没有改变源代码中的任何内容。我没有改变php.ini或httpd.conf中的东西。我已经记录了php函数的响应时间,并且性能没有改变。

起初我认为它与firefox有关,所以我完全删除了firefox,重新启动了vista并做了一个干净安装的firefox(没有扩展)。没有结果。

在测试了几件事之后我发现当我将应用程序数据复制到我的文档根目录中的另一个文件夹时,应用程序再次正常工作。问题解决了你可以想到但是我现在不得不使用另一个URL并且(更重要的是)我不明白它是非常烦人的。为什么我的应用程序在一个文件夹中非常非常慢,在另一个文件夹中完全没问题?它与firefox或apache有关吗?应用程序非常慢的文件夹的名称不会出现在php.ini或httpd.conf中。建议任何人?

6 个答案:

答案 0 :(得分:4)

一些建议:

  1. 在客户端上安装Fiddler。 这将允许您分析 来自的低级HTTP流量 服务器。

  2. 从中提取一些查询 你的PHP代码并运行它们 在MySQL客户端中交互式地进行 看看他们是否运行缓慢。

  3. 登录服务器(或获取一个 sysadmin如果你没有访问权限) 并运行任务管理器(Windows) 或top(Unix)并确保 没有别的东西可以占用了 服务器。如果你没有改变 什么,也许别的东西 在服务器上更改。另外,检查 服务器日志/事件查看器。

  4. 有一个名为Zend的扩展名 您可以安装的APD 服务器(再次,假设你有 权利)它将描述你的PHP 代码并写出一个显示的文件 什么功能被调用 你的PHP脚本是PHP的长度 花在每个功能上。

答案 1 :(得分:3)

查找可能导致阻塞的区域,例如在代码中通过NFS进行卷曲或打开文件。如果删除系统超时,它将极大地影响apache性能,因为每个请求都会占用服务器,无论多长时间超时并使滞后请求失败。

答案 2 :(得分:2)

您最近是否更改了开发设置中的任何网络设置?如果是这样,您可能会遇到 Mozillas IPv6错误之一。有关详细信息,请参阅this blog entry(摘自this question & answers);有关详细信息,请参阅this mozillaZine article,以及快速选项以进行测试。

答案 3 :(得分:0)

这听起来像是一个javascript问题,一个PHP请求不会使firefox无法使用,因为错误的javascript脚本可以很容易地做到这一点。如果禁用javascript,错误是否仍然存在?

答案 4 :(得分:0)

我遇到了同样的问题,突然之间,即使是简单的网站也要花费大约5分钟的时间来加载。

原因:

我的const fragment = document.createDocumentFragment(); let sortedElements = [...document.querySelectorAll('.product')].sort((a,b) => b.dataset.blockSize - a.dataset.blockSize ); //Select elements sortedElements.forEach((e) => { console.log(e) //My 4 children displayed fragment.appendChild(e) }); console.log(fragment.children); //Only Two children in it fragment.childNodes.forEach((el) => { document.querySelector("#appendThere").appendChild(el); })

中的设置错误

我必须删除此行:

<div class="product" data-object-size="4">Product 1</div>
<div class="product" data-object-size="2">Product 2</div>
<div class="product" data-object-size="1">Product 3</div>
<div class="product" data-object-size="1">Product 4</div>

<div id="appendThere"></div>

答案 5 :(得分:0)

确保在某个循环内的任何变量前都不要忘记$符号,因为Apache会为每次迭代创建一个日志错误文件,并且磁盘空间不足。更正脚本并删除日志文件可以解决您的问题。