【问题标题】:Is type hinting make script execution faster inPHP8+PHP8+ 中的类型提示是否使脚本执行更快
【发布时间】:2021-05-19 18:43:41
【问题描述】:

是否在函数和返回类型中提示类型参数(混合返回等)

让代码执行更快?

我的意思是我喜欢它用于防御性编码、极限编程,但这真的会影响性能吗:低还是高?

我进行了一些测试,但这在具有大量迭代的大型服务器上是矛盾的,带有和不带有 PHP8/FPM 扩展。

我还想说,我显然知道与代码的美观/防御性/可扩展性相比,这几乎没有成本。

谢谢

【问题讨论】:

标签: performance type-hinting php-8


【解决方案1】:

从逻辑上看:引擎需要额外的检查来验证函数的输出,因此需要更长的时间。请记住,PHP 不是静态编译语言(如 Java),因此在运行时会验证返回类型。

如果没有输出类型提示,它会少一个操作码 https://3v4l.org/cnOb8/vld#output

输出类型提示是多一个操作码 https://3v4l.org/ZuRAY/vld#output

不过,收益远远超过成本。你确定你不是prematurely optimizing你的代码吗?

【讨论】:

  • 当然,但是如果键入,C 不必“强制转换”变量,所以这对我来说不是很明显..
  • PHP 不是 C,抱歉 ;)
  • 完全没有,我知道成本没用。
  • 您在这里混合了两个不同的方面。例如,你可以有一个用 NodeJS 编写的 PHP 编译器。 PHP 是 PHP,与 C 没有任何关系。
  • 好吧,我说的是 PHP8+ 中的 JIT 编译,在 PHP7+ 中这比较慢,我用巨大的迭代/服务器/扩展运行了一些测试,这并不明显。我向一位知名的 PHP 贡献者询问了这个问题。我们可以私下谈谈我的测试吗?
猜你喜欢
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-03
相关资源
最近更新 更多