turk porno porno escort rokettube
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 20 von 27

Thema: Performance verbessern

  1. #1
    Benutzer Avatar von yersinia
    Registriert seit
    06.07.2010
    Beiträge
    50
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Performance verbessern

    Hi,
    ich verwende ZF 2 und Doctrine 2. Jetzt habe ich aber das Problem, dass der Aufbau meiner Seite laut ZendDeveloperTools ca. 2,5 Sekunden braucht. Die Datenbankabfragen verbrauchen davon, ebenfalls nach ZendDeveloperTools, ca. 40 ms.
    Ich verstehe natürlich, dass es schwer ist ohne Code eine Aussage darüber zu treffen, aber ich wollte fragen, ob es irgendwelche allgemeinen Tipps und Tricks zur Performancesteigerung gibt?

    Danke und lg

    edit:
    Zu sagen ist auch noch, dass nur das Rendern einer View (ohne Actions im Controller) ca. 700ms dauert. Das kommt mir auch schon etwas langsam vor oder?
    Geändert von yersinia (18.04.2013 um 14:07 Uhr)

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von yersinia Beitrag anzeigen
    Ich verstehe natürlich, dass es schwer ist ohne Code eine Aussage darüber zu treffen, aber ich wollte fragen, ob es irgendwelche allgemeinen Tipps und Tricks zur Performancesteigerung gibt?
    Du musst die Ursache/Bremse finden und da würde ich dir einen Profiler empfehlen. Nimm „Xdebug“ und schau dir die Ausführungszeiten an, dann findest du auch den Flaschenhals.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. #3
    Benutzer Avatar von yersinia
    Registriert seit
    06.07.2010
    Beiträge
    50
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Danke, werde ich machen. Grad gesehen, dass er eingeschaltet war - jetzt weiß ich auch, wieso meine Festplatte so voll war (40 GB Logfiles gelöscht ).


    Edit:
    So ich hab mir das jetzt einmal durchgeschaut und finde mich noch nicht ganz zurecht. Wenn ich mich durchklicke scheint es, als ob er bei EventManager->triggerListeners sehr lange braucht (siehe Screenshot).


    Hat da jemand eine Idee?

    Edit2: Bild ausgetauscht

    Edit3: Wenn ich mir die Overall Ansicht ansehe, braucht der Autoloader lange - könnte das das Problem sein?



    Edit4: Problem solved

    Ich hatte die ZendToolbar aktiviert und der Profiler braucht sehr lange um die Daten zu verarbeiten. Diese deaktiviert und es geht perfekt.

    Geändert von yersinia (18.04.2013 um 19:33 Uhr) Grund: Etwas hinzugefügt

  4. #4
    Benutzer
    Registriert seit
    15.06.2012
    Beiträge
    32
    Thanks
    1
    Thanked 9 Times in 3 Posts

    Standard

    Ich hake mich hier mal ein und frage: Was ist, wenn die Anwendung auch ohne Zend Toolbar lahm ist? Bei mir ist auch triggerListeners am Langsamsten. Die Seite (auf der augenscheinlich nichts großartiges passiert) lädt sich in > 2 Sekunden. Lokal. Am Rechner kann es eigentlich nicht liegen. Ist ein aktueller i7 mit 8GB RAM und SSD. WIE komme ich jetzt dahinter, wo der Flaschenhals ist?

  5. #5
    Erfahrener Benutzer
    Registriert seit
    18.05.2012
    Beiträge
    156
    Thanks
    5
    Thanked 29 Times in 22 Posts

    Standard

    Hast du nur die Toolbar deaktiviert oder das komplette Developer Tools-Modul? Letzteres wäre imho besser.

    Bei meinem System hatte ich übrigens das Problem, dass die Ladezeit bei aktiviertem Profiling von XDebug spürbar langsamer war.

    Ein paar häufig genannte Punkte für die Performance-Optimierung:

    - Nutzung der autoload_classmap.php-Dateien (dabei hilft der classmap_generator *)
    - Nutzung von template_map.php-Dateien (dabei hilft der templatemap_generator *)
    - Caching von Konfigurationsdateien nutzen
    - Auf Closures in der Konfiguration verzichten, die gerne bei Factories eingesetzt werden - die sind nicht nur langsamer, sondern haben auch den Nachteil, dass diese nicht gecacht werden können
    - bei Nutzung von Doctrine2 ist ebenfalls Caching empfehlenswert, schon auf der Doctrine2-Seite wird der Query Cache empfohlen, darüber hinaus gibt es auch noch den Result Cache und Metadata Cache

    * beides in vendor\zendframework\zendframework\bin vorzufinden

    Kommt natürlich auch auf den Server an. Soweit ich weiß ist PHP 5.4 z. B. schneller als PHP 5.3; und PHP 5.5 noch schneller, u. a. aufgrund des OPcache. (kann dazu mangels Erfahrung aber nicht viel zu sagen) Ansonsten wird auch gerne auf APC und/oder Memcached zurückgegriffen.

    ---

    Sind jetzt nur ein paar Tipps, um ggf. etwas Leistung rauszuholen. Würde mich aber wundern, wenn es damit von über 2 Sekunden auf unter 1 Sekunde runtergeht. Wie man die cachegrind-Files analysieren/verstehen kann, weiß ich leider auch nicht. Habe irgendwann einfach mal so lange die Zweige aufgeklappt bis ich Methoden gefunden habe, die zu mir gehören, bei denen ich evtl. durch Caching etwas optimieren konnte. Von meinem Wunsch, die Response Time auf unter 300 ms zu senken, bin ich leider noch etwas entfernt.

  6. #6
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von av3nger Beitrag anzeigen
    Bei meinem System hatte ich übrigens das Problem, dass die Ladezeit bei aktiviertem Profiling von XDebug spürbar langsamer war.
    Dies betrifft doch nur das Entwicklungssystem und durch einen Debugger und Profiler muss das System mehr Operationen durchführen, daher es muss auch langsamer sein.
    Das Aktivieren von XDebug kann aber entsprechend gesteuert werden.

    Zitat Zitat von av3nger Beitrag anzeigen
    Wie man die cachegrind-Files analysieren/verstehen kann, weiß ich leider auch nicht.
    Aber dann zum Zwischenspeichern von Konfigurationsdateien raten?! Das ist doch unsinnig.
    Ursachen bekämpfen und nicht Symptome! Mit einem Profiler und einem entsprechenden Programm zur Auswertung können die Ursachen/Flaschenhälse der Anwendung gefunden werden und dann korrekt angegangen werden. Alles andere sind Vermutungen!

    Es gibt einige Tutorials im Netz zum Thema Analyse der vom Profiler erzeugten Cachegrind-Dateien.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  7. #7
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von dennis! Beitrag anzeigen
    Lokal. Am Rechner kann es eigentlich nicht liegen. Ist ein aktueller i7 mit 8GB RAM und SSD.
    Doch, denn dein Rechner, dein lokales Entwicklungssystem und deine Webserver-Konfigurations ist garantiert nicht optimiert für die entsprechende Ausführung.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  8. #8
    Benutzer
    Registriert seit
    15.06.2012
    Beiträge
    32
    Thanks
    1
    Thanked 9 Times in 3 Posts

    Standard

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Doch, denn dein Rechner, dein lokales Entwicklungssystem und deine Webserver-Konfigurations ist garantiert nicht optimiert für die entsprechende Ausführung.
    Ohjemine... du hast natürlich sowas von Recht... :\
    Hab mal XDebug komplett deaktiviert und die Requests dauern alle nur noch halb so lange. Und das war ja nur die erstbeste Anpassung. Okay, dann vergesst meinen Einwand mal schnell. Danke!

  9. #9
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von dennis! Beitrag anzeigen
    Hab mal XDebug komplett deaktiviert und die Requests dauern alle nur noch halb so lange.
    XDebug kannst du gezielt ein- und ausschalten. (z.B. per URL-Parameter)

    Ansonsten musst du bei der Analyse der Profiler-Ergebnisse nur im Hinterkopf behalten, dass die Ausführungszeit (ungefähr) halbiert werden kann. Die Bremsen in deiner Anwendung findest du aber trotzdem, denn die laufen immer noch am längsten, egal wie lang die Gesamtausführung deiner Applikation ist.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  10. #10
    Erfahrener Benutzer
    Registriert seit
    11.09.2007
    Beiträge
    251
    Thanks
    0
    Thanked 9 Times in 3 Posts

    Standard

    Ich hatte mal ein Geschwindigkeitsproblem auf meinem MAC.
    Es lag daran, dass ich lokale Seiten mit .local geöffnet habe. Alle Seiten mit .local wurden ca. 2 Sekunden langsamer aufgerufen, als auf einem Windows Rechner. Als ich dann die lokalen Seiten auf .dev umgestellt habe, ging plötzlich alles blitzschnell

  11. #11
    Neuer Benutzer Avatar von Troll
    Registriert seit
    09.01.2015
    Beiträge
    24
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    moin

    da ich bei mir am entwicklungsrechner auch massiv performance probleme habe wollt ich mich hier mal anschliessen

    die grössten probleme treten hier bei mir beim ersten start auf. da renne ich eigentlich immer in den 30sek timeout von php

    ich hab mir gestern mal xdebug installiert und sah dann heute morgen das schon die ersten paar aufrufe den rechner tod rennen

    init() 4sek
    und
    bootstrap() 22sek

    ich habe jetzt schonmal diesen 'classmap_generator' gestartet und werde spätestens morgen früh sehen was draus geworden ist.

    aber habt ihr spontan noch einen tip um diese 2 aufrufe zu beschleunigen ?

    p,s,
    ich bin immer noch zend anfänger
    also nicht unendlich viele fachwörter und mehr links
    alles wird Troll

  12. #12
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Troll Beitrag anzeigen
    init() 4sek
    und
    bootstrap() 22sek
    Das ist nicht vertretbar. Auf einem Entwicklungssystem sollte dies „ms“ und keine „s“ sein –*mit aktiviertem Xdebug und Profiler! Bei der Arbeit mehrere Sekunden warten ist ein Unding.
    Das Problem wird nicht mal bei deiner Anwendung liegen, sondern das PHP und dein System schon allein zu lange brauchen. Führe mal einen einfachen Test mit „reinen“ PHP-eigenen Funktionen aus und schau wie lang dies läuft. Solltest du hier ebenfalls im Sekundenbereich sein, dann liegt es tatsächlich an der PHP-Installation oder am Rechner. Es gibt auch erhebliche Unterschiede zwischen den PHP-Versionen, denn eine 5.3 ist bei vielen Sachen einfach komplett einer Version 5.6 unterlegen und kann schon die Skriptlaufzeit oder den Speicher überfordern.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  13. #13
    Benutzer
    Registriert seit
    30.05.2009
    Ort
    München
    Beiträge
    84
    Thanks
    0
    Thanked 37 Times in 14 Posts

    Standard

    Zeig mal spaßeshalber deine Module.php Dateien her. Evtl machst du zu viel in der onBootstrap() Methode.
    Für live Umgebungen gibt es da noch einige Stellschrauben an denen du drehen kannst. Die sind allerdings für Dev Umgebungen weniger geeignet. Dazu zählt u.A. der Config-Cache, genauso wie die classmap.

  14. #14
    Neuer Benutzer Avatar von Troll
    Registriert seit
    09.01.2015
    Beiträge
    24
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    das is nur beim ersten start so. als ob er was cacht . obwohl keinerlei caching genutzt wird bis jetzt

    wenn der einmal durchgelaufen ist startet die seite halbwegs flott
    reine PHP scripte ... auch komplexere .... sind eher im ms bereich anzutreffen.

    ggf kannst du mir ne vernünftige docu für das xdebug empfehlen wo ich dann rausfinden kann was er da genau macht ?!


    dies is halt auch mein grösstes problem mit zend ... ich weiss (noch) nicht genau was er macht ... aber das macht er arsch langsam ^^


    php ansich ist meiner meinung nach recht optimal konfiguriert.
    alles wird Troll

  15. #15
    Benutzer
    Registriert seit
    30.05.2009
    Ort
    München
    Beiträge
    84
    Thanks
    0
    Thanked 37 Times in 14 Posts

    Standard

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Das ist nicht vertretbar.
    Definitiv

  16. #16
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von michl Beitrag anzeigen
    Zeig mal spaßeshalber deine Module.php Dateien her. Evtl machst du zu viel in der onBootstrap() Methode.
    Ob man damit 22 Sekunden begründen kann, ist doch eher fraglich.

    Zitat Zitat von michl Beitrag anzeigen
    der Config-Cache
    Ohh, dies würde ich erstmal ganz weit nach hinten stellen und auch nur nach echten Messungen und Überprüfungen überhaupt in den Betracht ziehen. In der Regel werden hier nur Symptome bekämpft und nicht die Ursache. (Bei PHP-Arrays sowieso fraglich! )
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  17. #17
    Neuer Benutzer Avatar von Troll
    Registriert seit
    09.01.2015
    Beiträge
    24
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    hier gerne noch die onBootstrap

    zu meiner verteidigung ... ich hab das nicht geschrieben ich muss nur verstehen aufräumen und schneller machen

    Code:
    class Module implements ServiceProviderInterface
    {
        public function onBootstrap($e)
        {
            \Locale::setDefault('de_DE');
            $app = $e->getApplication();
            $eventManager = $app->getEventManager();
            $sm = $app->getServiceManager();
            $translator = $sm->get('translator');
            $translator->setLocale('en_US');
            $em  = $sm->get('Doctrine\ORM\EntityManager');
            $dem = $em->getEventManager();
            $dem->addEventListener(
                array(
                    \Doctrine\ORM\Events::postLoad,
                    \Doctrine\ORM\Events::prePersist
    ),
                new Entity\ServiceManagerListener($sm)
            );
    
            // Setup the Zend Logger
    $logger = new Logger();
            $writer = new Stream('./data/log/zsopp.log');
            $logger->addWriter($writer);
    
            // Attach a logging listener for the log event on application level, working code
    $events = StaticEventManager::getInstance();
            $events->attach('*', 'log', function ($event) use ($logger) {
                $target   = get_class($event->getTarget());
                $message  = $event->getParam('message', 'No message provided');
                $priority = (int)$event->getParam('priority', Logger::INFO);
                $message  = sprintf('%s: %s', $target, $message);
                $logger->log($priority, $message);
            });
    
    
            /*$this->getEventManager()->trigger('log', $this, array(
                'priority' => Logger::DEBUG,
                'message' => 'request->getPost = '
            ));*/
    
            //Session
    $config = $e->getApplication()
                ->getServiceManager()
                ->get('Configuration');
    
            $sessionConfig = new SessionConfig();
            $sessionConfig->setOptions($config['session']);
            $sessionManager = new SessionManager($sessionConfig, null, null);
            Container::setDefaultManager($sessionManager);
    
            $moduleRouteListener = new ModuleRouteListener();
            $moduleRouteListener->attach($eventManager);
            $eventManager->attach('route', array($this, 'onRouteFinish'), -100);
            $eventManager->attach('route', array($this, 'onRoute'), -1000);
    
            $sharedEventManager = $eventManager->getSharedManager();
            $sharedEventManager->attach(__NAMESPACE__, 'dispatch', function($e) {
                $result = $e->getResult();
                if ($result instanceof \Zend\View\Model\ViewModel) {
                    if ($e->getRequest()->getQuery('partial')) {
                        $result->setTerminal(true);
                    }
                }
            });
    
            $authorize = $sm->get('BjyAuthorize\Service\Authorize');
            $acl = $authorize->getAcl();
            $roles = $authorize->getIdentityProvider()->getIdentityRoles();
            \Zend\View\Helper\Navigation::setDefaultAcl($acl);
            \Zend\View\Helper\Navigation::setDefaultRole($roles[0]);
        }
    alles wird Troll

  18. #18
    Neuer Benutzer Avatar von Troll
    Registriert seit
    09.01.2015
    Beiträge
    24
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    hab grade mal nen wenig gebenchmarkt

    die onBootstrap läuft aktuell 0.179011 s

    was ich ja schon recht langsam finde ....

    ich weiss leider nicht wie ich diesen 30 sekunden timeout provozieren kann
    alles wird Troll

  19. #19
    Erfahrener Benutzer
    Registriert seit
    11.09.2007
    Beiträge
    251
    Thanks
    0
    Thanked 9 Times in 3 Posts

    Standard

    Verwendest Du einen Mac und ist es nur dort langsam, oder auch live im Web-Space?

  20. #20
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von mondy Beitrag anzeigen
    Verwendest Du einen Mac…
    Was hat dies mit einem Mac zu tun?
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. performance verbessern
    Von fakerer im Forum Einsteigerfragen
    Antworten: 6
    Letzter Beitrag: 27.11.2011, 15:38
  2. Query verbessern
    Von ZendNeuling im Forum Einsteigerfragen
    Antworten: 11
    Letzter Beitrag: 20.06.2009, 14:55
  3. Wie Performance verbessern?
    Von tebe im Forum Installation & Konfiguration
    Antworten: 20
    Letzter Beitrag: 02.02.2008, 16:46
  4. Performance Problem ZF 1.0
    Von TorstenB im Forum Installation & Konfiguration
    Antworten: 4
    Letzter Beitrag: 13.07.2007, 12:49
  5. Performance vom ZF?
    Von sled im Forum Einsteigerfragen
    Antworten: 14
    Letzter Beitrag: 03.03.2007, 18:14

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •