Windows 7 PHP + Symfony2 furchtbar langsam
Dies ist ein Problem, ich habe mit für eine lange Zeit. Ich möchte zum ausführen von PHP-Anwendungen auf meinem windows-computer, und es hat eine furchtbar hohe Ladezeit von etwa 10-25 Sekunden. Ich habe versucht, viele Dinge:
- Zuerst habe ich versucht einen einfachen XAMPP-installation
- Ich lese WAMP könnte schneller sein, also habe ich versucht xampp auch. Es gab mir die gleichen Ergebnisse
- Dann installierte ich einen nginx server mit PHP, aber es hat auch nicht geholfen
- Schließlich installierte ich Ubuntu 11.10 in VirtualBox, und ich teilte meine windows-Dateien mit meinem Projekt, aber das Ergebnis war noch schlimmer: über 22 zweite Ladung Zeit jedes mal.
UPDATE: ich habe auch versucht, den APC - es ist ein bisschen besser, aber immer noch 6-8 Sek./Seite
Lud ich meine Dateien auf einen linux-server(shared hosting), auf dem es läuft in etwa 300-500 ms. Auf der XAMPP-installation habe ich versucht zu starten (also nicht Symfony2) - Anwendungen(z.B. phpmyadmin), die waren auch langsamer als auf dem shared-hosting, aber nicht extrem langsam, mit 2-3 sec Ladezeit. Bis ich auf Linux als Haupt-OS, wie könnte ich die Leistung verbessern? Ich habe einen laptop mit i7-CPU, 4 GB RAM, 5400RPM HDD, Win7 x64.
Danke für Eure Hilfe!
UPDATE2: aus irgendeinem mysteriösen Grund meiner Symfony routing funktionierte nicht mit fcgid (es gab bei mir einen 404-error für alles), also ging ich zurück für die Verwendung von PHP als Modul. Nun, es hat sich der Schlimmste aller Zeiten (schlimmer als es verwendet werden, um so ein Modul): app-Modus 20-25 sec, und im dev-Modus, über 30s jedes mal, so bekomme ich einen timeout-Fehler, und es ist das gleiche mit oder ohne APC aktiviert.
Hier können Sie diese Fehlermeldung sehen. Dies ist wiederholbar: jedes mal, wenn er erreicht einen anderen Punkt der Ausführung innerhalb von 30s:
InformationsquelleAutor der Frage David Frank | 2012-03-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte ein ähnliches problem mit symfony 1 für eine Zeit auf XP und Server 2003. Die Lösung war die Installation eines PHP-accelerator (eAccelerator für uns, APC könnte eine bessere Wette ist, diese Tage) und FastCGI/fcgid.
Nachtrag: es ist schon lange her, seit ich habe Apache auf Windows. Ich habe im Allgemeinen der Ansicht, dass seine Leistung wurde immer stetig besser, anstatt schlechter; wie die meisten ungewöhnliche set-ups, YMMV. Wie pro meine früheren Kommentar, den ich Ihnen empfehlen, Ihre Frage an Apache Loungewo ich vorher empfangen haben einige tolle kompetente Beratung.
Wenn der Speicher dient, richtig, Sie können bieten Ihnen einen kostenlosen Apache-binary kompiliert mit besseren Instrumenten als der standard angeboten auf der website von Apache.
InformationsquelleAutor der Antwort halfer
Update:
Seit PHP 5.5 ist nun integriert den PHP OPCache, dies beschleunigt die Ausführungszeit. In meinem setup eine vollständige Anfrage mit Datenbank Zugriff nimmt 180ms jetzt.
Schritte:
php.ini Einstellungen:
Warum wird Windows langsamer als Unix?
Diskutiert, wie hierPHP ist sehr langsam in file_exists, und filemtime() auf Windows. da Symfony2 ist die Verwendung dieser Funktionen in den dev-Modus eine Menge. wir bekommen nicht unter 700ms (<= 5.4) auf Windows. PHP 5.5 ermöglicht jetzt 180ms.
Könnte eine Lösung sein WinCache wurde von microsoft entwickelt, um dieses problem zu lösen, die auf IIS. Aber es funktioniert nur auf einigen Windows-Versionen und auch nur mit IIS es ist keine Lösung für mich.
Alternative
Auch eine schöne Lösung, die ich empfehlen kann, ist eine Linux-VM auf Virtualbox. Dieser ist einfach einzurichten und ist auch mehr wie die Produktionsumgebung.
InformationsquelleAutor der Antwort Simon Fakir
Ich habe genau das gleiche problem. Einstellung die folgende in php.ini erhöht die Leistung bei mir von ~800ms ~300ms:
php.ini:
Immer noch nicht die ~100ms, die ich von einem unix-Rechner, aber es macht einen Unterschied, zumindest
InformationsquelleAutor der Antwort Bert Hekman
Wow, Nach versuchen, viele verschiedene Dinge, ich habe es endlich gelungen ist, sich zu bewegen von einem 15s Ausführungszeit für eine 3s-exec-time auf windows7 mit wamp.
Installieren wincache-Erweiterung :
http://us2.php.net/manual/en/wincache.installation.php
Wo laden Sie die wincache-dll:
http://sourceforge.net/projects/wincache/
Mein php.ini-config ändern:
InformationsquelleAutor der Antwort Sébastien
ich denke, Sie haben ein problem mit caching-Mechanismus.
check-app\cache-Verzeichnis.
es muss ein Ordner mit dem Namen dev.
wenn es nicht vorhanden ist oder wenn es leer ist, überprüfen Sie Ordner-Berechtigungen.
wenn ich löschen dev und prod Verzeichnis unter app\cache-Verzeichnis dauert es 18 Sekunden, die Seite zu laden aber danach dauert es nur noch 500 ms.
InformationsquelleAutor der Antwort Ekrem
Einigen Jahren hatte ich das gleiche problem. Welche antivirus-software Sie laufen im hintergrund?
Versuchen Sie, deaktivieren Sie es für dev-Zwecke oder zu ändern. Es könnte auch sein, einige indexing services, die im hintergrund laufen. Symfony 2 setzt sich aus >15000 Dateien mit dem Anbieter 🙂
Auch versuchen es auf die klassische Weise, durch die Neuinstallation von Windows von Grund auf neu.
Meine Websites in der Regel von 100-500ms, und mein laptop ist langsamer als deine. (Intel C2D P8600)
InformationsquelleAutor der Antwort Vincent
Nur eine Vermutung (und wahrscheinlich nicht richtig), aber es könnte sein, MySQL bezogen. Zu sehen, wie Sie erwähnt PhpMyAdmin und Symfony 2 PHP-Anwendungen, die Sie getestet, beide berufen sich auf MySQL (vorausgesetzt, Sie haben MySQL einrichten in Symfony 2). Hast du nicht erwähnt in deinem post, aber in Ihrer VirtualBox-setup, hast du zufällig das Skript läuft unter Ubuntu eine Verbindung zum MySQL-server auf Ihrem Windows-host-Maschine?
Man könnte prüfen, PHP Benchmark für einige performance-testing-Skripte, und sehen, ob diese scripts besser zeitlich.
Andere Sache, die Sie könnten versuchen ist die Verwendung Xdebug und sehen, wenn Sie finden (einen) bestimmte (Gruppen von) Funktion(en), die Einnahme von zu viel Zeit.
Ich bin definitiv gonna keep diese Frage als Favorit, denn ich bin zu neugierig, um zu sehen, was es nun war 🙂 viel Glück !
InformationsquelleAutor der Antwort Wouter
Überprüfen Sie Ihren computer random access memory, RAM mit http://oca.microsoft.com/en/windiag.asp oder führen Sie den Speicher-test-Anwendung, die im Lieferumfang des Ubuntu-CD-Boot-option.
In beiden Fällen wählen Sie, was wissen, als extra oder tief testen - ich erinnere mich nicht genau - Wie immer, wählen Sie den test mit mehr langjähriger diese Art von tests hat kein Ende, Sie nur warten, bis der test fertig stellen, zwei Phasen und Probleme mit Ihrem RAM, meist, gezeigt.
Überprüfen Sie auch, ob Ihre Festplatte mit jeder Form der überprüfung. danach führen Sie die Defragmentierung
Ich etwas, dein problem ist hardware-bezogene problem.
InformationsquelleAutor der Antwort
Meiner Seiten wurden unter 20 Sekunden ausgeführt. Ich installierte fast-cgi, erhöhte Speicher-limits, alles, funktioniert nicht. Dann schaute timeline mitbekommen und symfony-firewall-Moduls wurde die Aufnahme meiste Zeit. Stellt sich heraus, dass Sie "localhost" in meiner config für die Lehre ist, was Probleme verursacht. Ändern Sie ihn auf 127.0.0.1 das problem behoben. Nicht sicher, warum, aber es ist hier beschrieben:
http://12wiki.blogspot.ca/2012/11/why-does-symfony-2-firewall-take-so.html
InformationsquelleAutor der Antwort Alex
Seite Ladezeit hängt von der CSS + JS + Bild laden Zeit auch. Ich hatte das gleiche problem bei der Verwendung von CakePHP und löste das problem, indem
mod_expires
in der htaccess.Haben Sie versucht, "ExpiresByType" in Ihrem server htaccess-Datei für die CSS, JS und Bilder? Überprüfen Sie diese Seite.
InformationsquelleAutor der Antwort Kumar