-2

我知道以前有人问过这个问题,但我无法找到明确的答案。

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

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

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

话虽如此,php 确实退出得更快,但这是否意味着 php 实际上花费了更少的时间来执行并反过来加快最终用户端的速度?

需要明确的是,我的意思是如果我有 2 个文件,相同的内容,一个对每个 html 标记使用 echo 语句,另一个文件使用标准的进出 php 方法,除了文件大小与“过度”使用 echo 语句的差异(我猜是有原因的?),哪一个会更快?还是真的没有区别?

也许我要解决这个问题或看错了?

编辑:我做了一些检查,找到了一种方法来创建秒表来检查脚本的执行时间,并且似乎工作得很好。如果有人有兴趣做同样的事情,这里是我现在选择使用的方法的链接。

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

4

4 回答 4

7

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

不。

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

你错了。

这是否意味着 php 实际上花费了更少的时间来执行并反过来加快最终用户端的速度?

不。

还是真的没有区别?

是的。

也许我要解决这个问题或看错了?

确实。

与性能相关的问题存在一个常见问题。
他们中的大多数不是出于真正的需求,而是出于想象。
虽然人们只需要解决实际问题,而不是可以想象的问题。

于 2013-01-02T16:27:02.747 回答
1

这不是问题。

你多虑了。

这是一个老问题,但这里提出的逻辑的问题是它假设“更多的命令等于更慢的性能……”当 - 就现代编程和现代系统而言 - 这是一个完全不相关的问题。这些问题只是某些人(出于某种原因)在汇编程序之类的极低级别上编写程序的人所关心的。

可能会出现放缓的原因......但任何人都无法感知到任何东西。例如,你为优化该代码所做的任何努力都不会产生任何有价值的东西。

也就是说,编程时应该始终关注速度和性能,而不是使用多少命令。

作为将 PHP 与echo语句一起使用的人,我建议您组织代码以提高可读性。一堆echo语句简直难以阅读和编辑。根据您的需要,您应该将这些echo语句的内容连接成一个字符串,echo稍后再使用。

或者——我使用的一个很好的技术——是创建一个我需要的值数组,echo然后运行echo implode('', $some_array);

数组相对于字符串连接的好处是它自然更容易理解,这some_array[] = 'Hello!';将是该数组的新添加,其中类似的东西$some_string .= 'Hello!';可能看起来很简单,但当您发生大量连接时,调试可能会令人困惑。

但归根结底,对于所有相关人员来说,易于阅读的干净代码比将流程缩短几分之一秒更重要。如果您是一名现代程序员,请在编写初稿时着眼于可读性,然后(如有必要)考虑优化该代码。

于 2019-08-23T02:13:57.013 回答
0

不必担心有 10 或 100 个呼叫需要回显。优化时甚至不应该考虑这些。

认为在普通服务器上,您可以以比 1/100,000 秒的速度更快地运行 echo simple 调用。

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

于 2013-01-02T16:29:17.310 回答
-2

没有做任何基准测试。我只能说,事实上,当您的回显字符串(HTML 与否)并使用双引号 ( ") 时,它比单引号 ( ') 慢。

对于带双引号的字符串,PHP 必须解析这些字符串。您只需将变量插入到字符串中即可知道在字符串中获取变量的可能性:

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

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

希望这会对你有所帮助。

即使您使用一堆回声呼叫,我认为它不会减慢您的加载时间。加载时间取决于服务器的反应时间和执行时间。当给定任务的加载时间太长时,请检查整个代码,不仅回声的可能性会减慢服务器的速度。我认为您的代码中有问题。

于 2013-01-02T16:32:28.017 回答