Zend Framework 1.11、Doctrine 2、いくつかの Symfony 2 コンポーネント、およびその他のツールとライブラリを使用したプロジェクトに取り組んでいます。
Xdebug と Webgrind を使用してパフォーマンスを最適化しようとしています。
Ini configの解析などのボトルネックをすでに見つけており、それをキャッシュしました。
ここで、自動読み込みがアプリケーションの最もコストのかかる部分であることに気付きました。
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
、私はdefault を使用していません。Opl
私が知る限り、それよりも速いものを使用してclassMapLoader
います。
どうすればそれを最適化できますか?
私は約 250 個のクラスをロードしましたが、遅いのは 40 個までのようで、他のものは "Total call cost" として 0,00 を表示していますが、require 呼び出しで 0,08 から 0,57 に増加しているクラスもあります。
ちなみに、Opl オートローダーを使用しているため、私の実稼働環境の APC では、オートローダーによって呼び出されるファイルではなく、「手動で必要な」ファイルのみをオペコードがキャッシュしているように見えます。