我有一个PHP文件,其中包含了许多其他PHP脚本,它们都只使用该包含文件中定义的函数和变量的子集。(我猜这是大多数较大的库的常见情况。)
因此,在大多数情况下,实际上只使用了包含文件的一小部分,而忽略了其中的大部分(未使用的函数,从未引用的变量等)。
但是AFAIK PHP的所有最新版本都带有Zend-optimizer,据我所知,Zend-optimizer会生成某种字节码,然后在运行时使用。因此,它应该过滤掉所有未使用的代码,因此即使是大量未使用的函数在运行时也不会产生任何开销。
是这样吗?还是在PHP中使用大型库会产生性能开销?
发布于 2015-08-18 00:00:40
从PHP 5.5 change log of new features
已将Zend Optimiser+操作码缓存作为新的OPcache扩展添加到中。OPcache通过将预编译的脚本字节码存储在共享内存中来提高PHP的性能,从而消除了PHP在每次请求时加载和解析脚本的需要。
我从这句话中理解到的是,当转换为字节码时,每个.php文件都将保存到shared memory中,因此不需要在每个文件中重复转换。当我们不再执行该步骤时,我们的处理时间就会减少。
这意味着未调用的函数和不需要的变量被声明并存储在缓存中,但从未使用过。
在
中使用大型库有性能开销吗?
这个问题的答案几乎总是“是”。有许多基准测试表明,即使使用OPCaching (例如APC或Zend Optimiser),库也很慢。
https://stackoverflow.com/questions/32046674
复制相似问题