0

我有一个关于页面加载时间的实际问题:

假设我想要以下输出:

<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 输出压缩为一个变量并一次性回显它?

谢谢!

4

4 回答 4

4

这两个真的没什么区别。一两个回声无所谓。1000回声没关系。真的,当你看到事物的宏大时,回声并不重要。我可以在我的笔记本电脑上以紧密的循环每秒运行 500 万次回声。执行一个需要 1 毫秒或 2 毫秒运行的 SQL 查询意味着您或多或少会获得 5000 个回显调用的差异。那是多么无关紧要。

您想要做的是使用分析器查看您的代码,并在遇到性能问题时找到瓶颈,但不要担心您做了多少回显。顺便说一句,您可能应该使用Twig之类的东西来使用模板打印 HTML,而不是像您的示例中那样使用原始 PHP,至少这可以让您自动转义 HTML 实体,例如保护您免受 XSS 攻击。

于 2012-05-12T13:01:42.023 回答
1

就性能而言,第二个更快,因为打印到输出是昂贵的操作。但是你应该小心不要为了快速执行代码而牺牲阅读代码的文章。

于 2012-05-12T12:56:05.187 回答
1

我已经进行了类似于您之前要求的测试。

在您发布的两个示例中,我发现第一个示例与第二个示例相比要慢一些。

如果您事先将输出存储到缓冲区中,您将使用更多内存,并且它再次比您给出的两个示例中最慢的慢一点。

正如其他人指出的那样,这完全无关紧要,我会将易于维护性和可读性置于您认为可能获得的任何速度优化之上。

于 2012-05-12T13:04:37.923 回答
0

完全没有意义的微优化。是否存在差异取决于您使用的 PHP 运行时,但与任何类型的 DB 访问、服务器配置和字节码缓存相比,它完全无关紧要。

这不是你应该担心的事情,尤其是在性能很重要的情况下。

于 2012-05-12T12:57:59.260 回答