我支持并重做旧版PHP7应用程序。这个应用程序不使用自动加载,而不是这个应用程序需要单个文件中的所有类,只是围绕所有目录与类。老团队认为这是一种很好的优化方式。
所以我用blackfire做了一些测试,发现这包括可以消耗一半的cpu时间。我做了自动加载实验,两次减少cpu时间,三次减少内存消耗。很棒的结果。
然后我继续使用没有自动加载的旧代码进行实验,发现在某些情况下mega-including不会消耗大量时间(并且它是带有大量循环的平面文件,没有if-else语句)。
在blackfire面板中,这看起来像包含的文件有非常多的callees。在一个案例中,这个文件有21个被调用者并且工作132毫秒,在另一个例子中它有6个被调用者和2.63毫秒。
我不明白这种差异的原因。我的假设是PHP7非常智能,可以分析哪些类真的应该用字节代码编译,哪些不是。
有人知道为什么存在这种差异吗?
PS:我无法显示黑火报告,PM不允许这样做。答案 0 :(得分:0)
没有代码或报告很难猜到。但我会看看这个页面。也许在那里解释的内容存在于您正在审核的代码中。