Day: 2021年4月2日

Zend Engine中的函数内联-使用完全限定函数名称提高PHP程序性能

Zend Engine中的函数内联

 Zend Engine(PHP)特殊功能内联

现代PHP很快!它具有多项性能功能,例如OPCache,JIT和其他编译阶段的改进,可针对许多PHP应用程序进行智能优化。

检查OPCode是确保PHP可以进行最佳优化的简便方法。使用列出的OPCode,可以更清楚地了解给定的PHP代码段是否采用了执行预期任务所需的最短数量的OPCode。

目前,PHP有30多个这样的函数,它们使用特殊的OPCode或内联以提高性能。


展示这种效果的一个例子是 strlen函数。它返回给定字符串的长度,PHP尝试抢先优化。

if (strlen('Test') < 2) {
    echo "Test";
}

在此代码段中,该strlen函数在静态字符串文字上调用,并且PHP可以完全消除此块,因为Test字符串的长度是固定的,并且比较值也是静态值。

使用OPCode dump可以更好地揭示这一点

优化之前

php