广泛使用php echo语句会使页面加载时间变慢吗?

时间:2013-01-02 16:18:50

标签: php apache echo load-time

我知道之前已经问过这个问题,但我找不到明确的答案。

过度使用echo语句会减慢最终用户加载时间吗?

通过在文件中包含更多的echo语句,文件大小会增加,所以我知道这将是一个因素。如果我错了,请纠正我。

我知道经过一些研究后使用php的ob_start()函数以及upping Apaches SendBufferSize可以帮助减少加载时间,但据我所知,这更多是通过允许php更快地完成/退出来减少php执行时间,反过来允许Apache更快退出。

话虽如此,php确实会更快退出,但这是否意味着php实际上花费的时间更少,从而加快了最终用户的速度?

要清楚,我的意思是,如果我有2个文件,相同的内容,并且每个html标签都使用了echo语句,而另一个文件使用了进出php的标准方法,除了文件大小的差异与回声语句的“过度”使用(在我猜的原因之内?),哪一个会更快?或者真的没有任何区别吗?

也许我会这样做或者看错了?

编辑:我已经做了一些检查,找到了一种方法来创建一个秒表来检查脚本的执行时间,似乎工作退出。如果有人有兴趣这样做,那么链接到我现在选择使用的方法。

http://www.phpjabbers.com/measuring-php-page-load-time-php17.html

4 个答案:

答案 0 :(得分:4)

  

过度使用echo语句会减慢最终用户加载时间吗?

没有

  

通过在文件中包含更多的echo语句,文件大小会增加,所以我知道这将是一个因素。如果我错了,请纠正我。

你错了。

  

这是否意味着php实际上花费的时间更少,从而加快了最终用户的速度?

没有

  

或者真的没有任何区别吗?

  

也许我会这样做或者看错了?

当然。

与绩效相关的问题存在共同问题 他们中的大多数不是出于真正的需要,而是出于想象 虽然人们必须解决实际问题,而不是可以想象的问题。

答案 1 :(得分:0)

不要担心有10或100个回音呼叫。在优化这些时,甚至不应该考虑到这一点。

认为在普通服务器上,您可以以超过1/10000秒的速度运行回声简单调用。

总是担心代码的可读性和维护性,而不是那些X额外的回声调用。

答案 2 :(得分:0)

这不是问题。

您想得太多。

这是一个古老的问题,但是这里提出的逻辑存在一个问题,那就是它假设“更多的命令等于更慢的性能……”,就现代编程和现代系统而言,这是一个完全无关紧要的问题。这些关注仅是出于某种原因的人的关注,这些人出于某种原因在诸如汇编器之类的程序中以极低的级别进行编程。

出现可能的原因是速度放慢……但是,任何人都无法感知。例如,由于将速度降低了几分之一秒,因此您为优化代码所做的任何努力都不会产生任何有价值的东西。

也就是说,在编程时,速度和性能始终是一个问题,而不是在使用多少命令方面。

作为使用PHP和echo语句的人,我建议您组织代码以提高可读性。一堆echo语句很难阅读和编辑。根据您的需要,应将这些echo语句的内容连接到一个字符串中,然后在以后echo进行操作。

或者(我使用的一种不错的技术)是创建需要echo的值数组,然后改为运行echo implode('', $some_array);

数组比字符串连接的好处是很容易理解,some_array[] = 'Hello!';将成为该数组的新成员,其中$some_string .= 'Hello!';之类的内容看似简单,但在调试时可能会造成混淆您正在发生大量串联。

但是,归根结底,对于所有人来说,易于阅读的干净代码比减少一秒钟的过程更重要。如果您是一名现代程序员,请在着眼于可读性的基础上编写程序,然后在必要时考虑优化该代码。

答案 3 :(得分:-1)

没有做任何基准测试。我只能说,当你的回音字符串(html与否)和使用双引号(“)时,它比单引号(')慢。 对于双引号php的字符串必须解析这些字符串。您可以通过将变量插入字符串中来了解在字符串中获取变量的可能性:

echo "you're $age years old!";

php必须解析你的字符串以查找这些变量并自动替换它们。当你确定,你的字符串中没有任何变量使用单引号。

希望这会对你有所帮助。

即使你使用一堆回音电话,我也不认为这会减慢你的加载时间。加载时间取决于服务器的响应时间和执行时间。如果给定任务的加载时间很长,请检查整个代码,不仅回声可能会降低服务器的速度。我认为你的代码中会出现问题。