【发布时间】:2015-04-24 21:43:11
【问题描述】:
我在我的 windows 2008 服务器上使用 apache 2.2 和 php 5.3 进行测试,使用 Jmeter 在 10 秒内测试 300 次点击。 当一个非常简单的脚本出现巨大延迟时,我感到很惊讶
echo'
<script language="JavaScript" src="xx.js" type="text/javascript"></script>
<script language="JavaScript" ssrc="xx.js" type="text/javascript"></script>
<script language="JavaScript" src="xx.js" type="text/javascript"></script>
<script language="JavaScript" src="xx.js" type="text/javascript"></script>';
在那次测试之后,我将脚本标签更改为“script1”或其他任何内容(甚至是其他有效标签,例如链接)
echo'<script1 language="JavaScript" src="xx.js" type="text/javascript"></script>
<script1 language="JavaScript" ssrc="xx.js" type="text/javascript"></script>
<script1 language="JavaScript" src="xx.js" type="text/javascript"></script>
<script1 language="JavaScript" src="xx.js" type="text/javascript"></script>';
脚本按预期快速运行
这里是 jMeter 的结果。我仍然不知道是什么原因造成的或如何改进它
案例 1 正确使用标签,300 个样本 平均 3218 毫秒 每分钟样本数:1262
使用标签的案例 2,300 个样本 平均 116 毫秒 每分钟样本数:1783
编辑: 在我对 jmeter 的测试中,我只下载和请求单个 php 而不是静态文件,Jmeter 没有理由尝试解析/下载 jsvascript 失败,它应该发送请求并保存响应,仅此而已。
如果是这种情况,jmeter 将下载所有包含的文件 .ico、.css、图像等,并有一个重要的延迟,但只会发生在脚本标签上,就像 php 或 apache 正在制作和额外的进程时发现的那样一个字符串。我尝试了双引号和单引号以及 heredoc 来格式化包含脚本标签的字符串,但都是一样的。
现在我用 apache 2.4 和 PHP5.4 在 wamp 上运行了测试,问题解决了,jmeter 同时解决了这两个脚本。所以很明显它与php或apache有关,可能是在回显之前解析de缓冲区的模块或扩展,但仍然不知道是哪一个导致了这个
【问题讨论】:
-
<script1无效。可能是 JS 代码延迟了您的脚本,而不是 PHP。 -
use-trans-sid 可能会影响 php 方面的性能,但如果这增加了不明显的时间,我同意 @camil-staps 的回答