【发布时间】:2026-01-04 14:40:01
【问题描述】:
我正在使用 Zend Framework 1.11、Doctrine 2、一些 Symfony 2 组件和其他工具和库进行项目。
我正在尝试使用 Xdebug 和 Webgrind 优化性能。
我已经发现了一些瓶颈,比如解析 Ini 配置等。并缓存了它。
现在,我才意识到自动加载是我的应用程序中最昂贵的部分:
Opl\Autoloader\ApcLoader->loadClass 274 31.36 43.86
Zend_Loader_PluginLoader->load 150 4.80 12.29
Zend_Loader_Autoloader->getClassAutoloaders 278 1.42 1.91
Zend_Controller_Router_Route_Regex->_getMappedValues 291 1.29 1.35
Doctrine\ORM\UnitOfWork->createEntity 85 1.24 3.18
如您所见,我没有使用默认的 Zend_Loader_Autoloader,我使用的是 Opl,据我所知,这比它更快,我使用的是带有 APC 缓存的 classMapLoader,但是与应用程序的其他部分相比,它仍然有点慢。
我该如何优化它?
我已经加载了大约 250 个类,看起来只有 ~40 个很慢,其他显示 0,00 作为“总调用成本”,但其他在 require 调用时从 0,08 增加到 0,57。
顺便说一句,由于使用了 Opl 自动加载器,看起来在我的生产环境 APC 上只有操作码缓存“手动需要”的文件,而不是自动加载器调用的文件。
【问题讨论】:
标签: php performance zend-framework optimization autoloader