Was kann ich tun, um die Leistung/Geschwindigkeit meiner PHP-Skripte zu erhöhen, ohne Software auf meinen Servern zu installieren?
Antworten
Zu viele Anzeigen?Das Einfügen von Dateien ist langsam, und das Anfordern von Dateien ist noch langsamer. Wenn Sie __autoload zum Einbinden jeder Klasse verwenden, summiert sich das.
Ich bin immer etwas misstrauisch, wenn es darum geht, den Code zu sehr zu optimieren, wenn dies auf Kosten der Klarheit des Codes geht. Wenn man den Code unübersichtlich machen muss, um ihn schnell zu machen, wäre es dann nicht billiger, die Hardware aufzurüsten, anstatt seine Zeit damit zu verschwenden, den Code zu optimieren? Prozessorzyklen sind schließlich billiger als Programmiererzyklen.
Die, an die ich denken kann...
-
Schleifeninvarianten sind immer ein gut zu beobachten.
-
E_STRICT und E_NOTICE schreiben kompatiblen Code, insbesondere wenn Sie Fehler protokollieren.
-
Vermeiden Sie den @-Operator.
-
Absolute Pfade für requires und enthält.
-
Verwenden Sie wann immer möglich strpos, str_replace usw. anstelle von regulären Ausdrücken.
Dann gibt es noch eine Reihe anderer Methoden, die vielleicht funktionieren, Ihnen aber wahrscheinlich nicht viel bringen werden.
Wenn ich mich mit Leistungsproblemen befasse, ist es meiner Meinung nach am besten, zu messen, wie lange Ihre Seiten zum Ausführen brauchen, und dann die langsamsten Seiten zu untersuchen. Wenn Sie diese realen Messwerte erhalten, können Sie die Leistung der langsamsten Seiten oft um Größenordnungen verbessern, indem Sie entweder eine langsame SQL-Abfrage korrigieren oder vielleicht den Code etwas straffen.
Dies erfordert natürlich keine neue Hardware oder spezielle Software, sondern lediglich einen kritischen Blick auf den bestehenden Code.
Allerdings funktioniert das nur eine gewisse Zeit lang... wenn Sie wirklich so viel Datenverkehr haben, dass Ihre Hardware an ihre Grenzen stößt, und/oder wenn es einen Code gibt, der einfach von Natur aus langsam ist und wirklich benötigt wird, müssen Sie andere Möglichkeiten in Betracht ziehen.
Ich bin für ein großes Berichtssystem verantwortlich und wir verfolgen die langsamsten Berichte auf diese Weise. Ich gebe einen eindeutigen Schlüssel in die Datenbank ein, wenn der Bericht beginnt, und wenn er fertig ist, kann ich feststellen, wie lange er gedauert hat. Ich verwende die Datenbank, weil ich auf diese Weise feststellen kann, wann die Seiten eine Zeitüberschreitung haben (was häufiger passiert, als mir lieb ist).
Befolgen Sie zunächst einige der anderen Ratschläge, wie z. B. die Profilerstellung und gute Entscheidungen über die Ressourcenzuweisung, z. B. Caching.
Berücksichtigen Sie auch die Leistung von externen Ressourcen wie Ihrer Datenbank. In MySQL können Sie die langsames Abfrageprotokoll zum Beispiel. Stellen Sie außerdem sicher, dass Sie Ihre Datenbank nicht entworfen haben und sie dann vergessen haben. Optimieren Sie Ihre Abfragen ( wieder für MySQL ) gegen reale Daten kann sich auszahlen.