6 Stimmen

Optimiere meine Leistung

Ich arbeite an einem Projekt mit Zend Framework 1.11, Doctrine 2, einigen Symfony 2-Komponenten und anderen Tools und Bibliotheken.

Ich versuche, die Leistung mit Xdebug und Webgrind zu optimieren.

Ich habe bereits einige Engpässe wie das Parsen von Ini-Konfigurationen usw. gefunden und diese zwischengespeichert.

Jetzt stelle ich fest, dass die automatische Ladung der kostspieligste Teil meiner Anwendung ist:

    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

Wie Sie sehen können, verwende ich nicht die Standard Zend_Loader_Autoloader Ich benutze Opl was, soweit ich weiß, schneller ist als das, benutze ich die classMapLoader mit einem APC-Cache, aber es ist immer noch ein bisschen langsamer als der Rest der Anwendung.

Wie könnte ich das optimieren?

Ich habe etwa 250 Klassen geladen, und es sieht so aus, dass nur ~40 langsam sind, andere zeigen 0,00 als "Total call cost" an, aber andere steigen von 0,08 auf 0,57 bei dem erforderlichen Anruf.

Übrigens, seit ich den Opl-Autoloader verwende, sieht es so aus, als ob APC in meiner Produktionsumgebung nur die Dateien im Opcode-Cache speichert, die "manuell erforderlich" sind, und nicht diejenigen, die vom Autoloader aufgerufen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X