使用blackfire.io分析PHP 7应用程序,为什么我看到相同代码的不同cpu时间?

时间:2016-08-17 09:55:23

标签: php optimization profiling php-7 blackfire

我支持并重做旧版PHP7应用程序。这个应用程序不使用自动加载,而不是这个应用程序需要单个文件中的所有类,只是围绕所有目录与类。老团队认为这是一种很好的优化方式。

所以我用blackfire做了一些测试,发现这包括可以消耗一半的cpu时间。我做了自动加载实验,两次减少cpu时间,三次减少内存消耗。很棒的结果。

然后我继续使用没有自动加载的旧代码进行实验,发现在某些情况下mega-including不会消耗大量时间(并且它是带有大量循环的平面文件,没有if-else语句)。

在blackfire面板中,这看起来像包含的文件有非常多的callees。在一个案例中,这个文件有21个被调用者并且工作132毫秒,在另一个例子中它有6个被调用者和2.63毫秒。

我不明白这种差异的原因。我的假设是PHP7非常智能,可以分析哪些类真的应该用字节代码编译,哪些不是。

有人知道为什么存在这种差异吗?

PS:我无法显示黑火报告,PM不允许这样做。

1 个答案:

答案 0 :(得分:0)

没有代码或报告很难猜到。但我会看看这个页面。也许在那里解释的内容存在于您正在审核的代码中。

https://blackfire.io/docs/24-days/22-php-internals