【问题标题】:Php echo <script> tags causes important performance delay [closed]Php echo <script> 标签会导致重要的性能延迟[关闭]
【发布时间】: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缓冲区的模块或扩展,但仍然不知道是哪一个导致了这个

【问题讨论】:

  • &lt;script1 无效。可能是 JS 代码延迟了您的脚本,而不是 PHP。
  • use-trans-sid 可能会影响 php 方面的性能,但如果这增加了不明显的时间,我同意 @camil-staps 的回答

标签: php html tags echo


【解决方案1】:

当使用script标签时,jMeter会下载xx.js。这需要一些时间。当使用script1 时,jMeter 会看到一个不正确的标签,并忽略它(或做一些未指定的事情)。无论如何,这种情况下不会下载xx.js,因此需要的时间更少。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    相关资源
    最近更新 更多