我有一个关于页面加载时间的实际问题:
假设我想要以下输出:
<a class="class-a" href="www.google.com"></a>
是否更快(关于加载时间和效率):
<a class="<?php echo $class_a; ?>" href="<?php echo $url; ?>"></a>
或
echo "<a class='$class_a' href='$url'></a>";
这是一个更大问题的缩影 - 如果我在页面上多次使用echo,那么尝试将HTML输出压缩成一个变量并一次性回显它会更好吗?
谢谢!
答案 0 :(得分:4)
这两个真的没什么区别。一个或两个回声无关紧要。 1000回音没关系。真的,当你看到宏大的东西时,回声并不重要。我可以在笔记本电脑上以每秒钟的速度运行500万回声。执行一个需要1毫秒或2毫秒运行的SQL查询意味着您可以或多或少地获得5000个回显调用的差异。这是多么无关紧要。
您要做的是使用分析器查看您的代码,如果遇到性能问题就找到瓶颈,但不要担心您做了多少回声。顺便说一句,您可能应该使用类似Twig的内容来使用模板而不是像您的示例中的原始PHP来打印HTML,至少这会为您提供自动HTML实体转义,例如,它可以保护您免受XSS攻击。
答案 1 :(得分:1)
在性能方面,第二个更快,因为打印到输出是昂贵的操作。但是你应该小心不要牺牲一个esay来读取快速执行代码的代码。
答案 2 :(得分:1)
我进行了类似于你之前要求的测试。
在你发布的两个例子中,我发现第一个与第二个相比略慢。
如果你事先将输出存储到一个缓冲区中,你将使用更多的内存,它再次比你给出的两个例子中最慢的那样慢。
正如其他人指出的那样,它完全无关紧要,我会将易于维护性和可读性置于您认为可能获得的任何速度优化之上。
答案 3 :(得分:0)
完全毫无意义的微优化。是否存在差异取决于您使用的PHP运行时,但与任何类型的DB访问,服务器配置和字节码缓存相比,它将完全无关紧要。
如果性能很重要,这不是你应该担心的一件事,尤其是。