随着PHP5.4.x的最新版本即将发布到5.5,已经有了相当多的new syntax引入。我理解它们在代码可读性、程序员较少键入、错误修复等方面的重要性。
但我特别想知道,在使用这些新语法方面,性能有多显著(如果有的话)。如果使用更多的新语法,PHP解释器和/或Zend引擎是否会执行得更快/更好?
或者,也许我没有抓住重点。需要你在这方面的专业知识和想法。谢谢!
发布于 2013-01-03 23:19:08
新的语法被添加到一种语言中,以使编写程序更容易,并使代码更易于组织;通常不是为了使其执行得更好。您不应该出于性能原因考虑使用特定的语法,而是因为它使您的代码更好,更容易使用,更容易阅读,等等。
例如,PHP5.5引入了“生成器”语法( yield关键字)。这是编写迭代器的一种改进方法。但是它不会在编写迭代器样式的代码之间提供任何性能差异;它基本上是在幕后做同样的事情。重要的一点是,与使用迭代器编写相同的代码相比,编写一个简单的Generator要容易得多。代码更短,更整洁,更容易理解。它不会运行得更快,但使用起来会容易得多。这就是重点所在。
但是,PHP在每次发布时都有显著提高语言性能的良好记录。您甚至不需要使用新特性--只需升级到最新版本,您就可以从现有代码中获得性能提升。在某些情况下,性能可以提高50%或更多。考虑到这一点,升级应该是不需要动脑筋的;能够使用新的语言功能是在性能收益之上的额外奖励。
有很多基准测试可以证明这一点;here's one example涵盖了PHPV5.1到5.4。
(我还没有看到v5.5的一个很好的基准,大概是因为它还在开发中,但你可以肯定基准会在它发布后很快发布)
发布于 2013-01-03 23:17:31
这是一个与系统无关的问题。根据运行环境的不同,您的里程可能会有所不同。话虽如此,但它是否“更快”还没有一个明确的说法。要测试您的特定环境,您必须进行一些代码分析,并查看5.4个代码样本与5.5个代码样本的执行时间。
发布于 2013-01-03 23:26:34
我不确定,但我怀疑使用新语法是否会带来任何显着的改进。解析器可能会更快地解析简洁的新语法,但它生成的操作码与使用旧版本生成的操作码大致相同。这意味着这里的改进几乎不明显。
另一方面,新版本在内部工作方面有所改进,这意味着旧代码和新代码都可以在新引擎上运行得更好
https://stackoverflow.com/questions/14141600
复制相似问题