Wenn wir programmieren, gibt es unabhängig von der Sprache Konzepte und Techniken, die wir anwenden können, um die Lesbarkeit der Code und die Verständnis und die Anwendungsleistung zu verbessern
Das größte Lernen hier ist:Versuchen Sie nicht, das Rad neu zu erfinden. Wie ich immer sage: Studieren und Forschung. Höchstwahrscheinlich hat jemand bereits das gleiche Problem wie Sie konfrontiert und eine effiziente Lösung gefunden. Das von der Community angesammelte Wissen spart nicht nur Zeit, sondern hilft auch, Fallen und gemeinsame Fehler zu vermeiden
Abfragen und DatenbankZu diesem Thema, was für Bewerbungen sehr wichtig ist, habe ich bereits ein wenig geschrieben, es ist eine Lektüre wert.
Datenpersistenz und Lesen in MySQL und Anwendungoptimieren
Leistungsoptimierungstechniken
cache
Die Verwendung von Cache ist unerlässlich, um die Last in der Datenbank zu reduzieren und Daten vorübergehend zu speichern, auf die häufig zugegriffen wird. Die Community verwendet ausführlich Redis
zu diesem Zweck
Maximierung der Anwendung - PHP ist eine hochwertige, aber volatile NoSQL -Datenbank im Speicher, da der Speicher nicht anhaltend ist. Es ist ideal für Fälle wie:
Real -Time -Verbrauchsdaten
laravel abstraktiert die Verwendung von Redis sowohl für Cache als auch für andere Zwecke. Verwenden Sie es jedoch mit Vorsicht! Führen Sie viele Tests durch und erfahren Sie mehr über Failovertechniken, um mit möglicher Nichtverfügbarkeit umzugehen. Wenn Ihr Dashboard beispielsweise in Echtzeit von Redis abhängt, was werden Sie dann tun, wenn es nicht funktioniert? Planungsalternativen sind entscheidend Code -Optimierungen
Einige wichtige Punkte, wenn wir über die Optimierung des Code schreiben:
Loops:
oder einfachen Funktionen als microtime () zu testen, um die tatsächliche Auswirkungen zu validieren. Achten Sie auf die Datenmanipulation in der Schleife und vermeiden Sie Speicherabfälle Native Operationen: Verwenden native PHP -Funktionen wie Array_MAP ist normalerweise sicherer und effizienter als die Erstellung von benutzerdefinierten Lösungen. Denken Sie daran: "Sie müssen das Rad nicht neu erfinden."
Minimieren Sie Schleifenvorgänge: Vermeiden Sie unnötig Schleifen in Schleifen. Ein eingebettetes Forech kann genauso schädlich sein wie ein ausgewählter *. Betrachten Sie stattdessen alternative Lösungen, wie z
: Die Einhaltung von PSR -Praktiken verbessert die Lesbarkeit und Wartung der Code. Heute bieten IDEs Erweiterungen an, die die Anwendung dieser Standards durch Speichern von Änderungen automatisieren. Dies hilft nicht nur bei der Qualität des Codes, sondern erleichtert auch diejenigen, die die Zukunft beibehalten werden
Die Verwendung von Warteschlangen wird immer häufiger. Die Idee ist einfach: Wenn die Verarbeitung einer Aufgabe später durchgeführt werden kann, entfernen Sie sie aus der sofortigen Ausführung der Methode
Beispiel :
Ist es erforderlich, die E-Mail-Bestätigung sofort zu senden, wenn ein Benutzer im E-Commerce einen Kauf tätigt? Oft nein. In diesem Fall können Sie die E -Mail an eine Warteschlange senden, die in Lose verarbeitet wird, um Ressourcen zu sparen und die Skalierbarkeit zu gewährleisten
Subprozesse
Stellen Sie sich einen Antrag vor, der für die gleichzeitige Bearbeitung von Hunderten von Rechnungen verantwortlich ist und die Steuern für jeweils berechnen. Wenn alle diese Operationen in einer Sequenz durchgeführt werden, können Sie langsame Warnungen ausgesetzt sein, auch wenn rechnerische Ressourcen (CPU und RAM)
In diesem Fall können Unterprozesse eine Lösung sein. Teilen Sie die Verarbeitung in kleine Teile ein und führen Sie sie parallel aus. Beispielsweise kann jeder Unterprozess für die Berechnung der Steuern für eine Gruppe von Rechnungen verantwortlich sein. Auf diese Weise kann Ihre Anwendung die verfügbaren Ressourcen besser genießen, die Verarbeitung beschleunigen und Engpässe vermeiden
erfordert und enthält : Bevorzugen Sie die Verwendung von Autolovement, um die Klassen- und Dateiladen zu verwalten. Dies verbessert nicht nur die Leistung, sondern vermeidet auch Probleme mit großen und unnötigen Klassen (den berühmten Megazords). Beispielsweise ist das Laden einer Klasse mit 7.000 Zeilen, nur um eine ausgewählte Methode zu verwenden, äußerst ineffizient. In diesen Situationen ist es wichtig, einen Refactor
zu betrachten
Das erste, was Sie wissen müssen, ist, dass PHP eine sehr leichte Sprache ist. Unter normalen Temperatur- und Druckbedingungen, wobei eine Maschine für die Anzahl der Anfragen geeignet ist und mit den ordnungsgemäßen Optimierungen im Code alles gut funktioniert
"Aber Matthew, was ist eine Maschine, die der Anzahl der Anfragen entspricht?"
Ich habe bereits an der Implementierung und Optimierung komplexer Anwendungen teilgenommen, die mehr als 6 Millionen Anfragen pro Tag verwendet
zwei Maschinen mit 2 VCPUs und 2 GB RAM pro .
Jetzt spreche über Tools:
Es ist ein FastCGI -Prozessmanager für PHP, eine Alternative zum Apache -PHP -Modul. PHP-FPM ist schneller, flexibel und in der Produktion weit verbreitet
opcache
Halten Sie aktualisierte Versionen
Es ist wichtig, Pakete, Tools, Frameworks und die bis möglichsten PHP -Sprache zu halten. Ich verstehe, dass oft die Bemühungen, von einer älteren Version wie Php 7.4 zu einem neueren, wie PHP 8.x, zu migrieren zu können. Vorteile in Bezug auf Leistung, Sicherheit und Unterstützung sind jedoch die Mühe wert
Achten Sie besonders auf die Konfiguration von Threads und Kinderprozessen (Kinderprozesse). Wenn Sie sehr hohe Werte für diese Einstellungen festlegen oder die Verwendung großer Dateien ermöglichen, können Sie die Maschine überladen, was zu Mängel und Nichtverfügbarkeit führt. Passen Sie diese Einstellungen immer gemäß Maschinenkapazität und realen Anwendungsanforderungen an
Überwachung
neue Religion
Datadatog
Andererseits gibt es mehr manuelle Optionen, die zwar mehr Anstrengungen und Kenntnisse des Teams erfordern, je nach Kontext:
möglicherweise wert sein:Die Herausforderung bei der Verwendung dieser Handwerkzeuge ist die Komplexität, die sie hinzufügen, insbesondere in robusten Anwendungen ohne ein spezielles Support -Team. Diese Lösungen erfordern viel Konfiguration, strenge Tests und achten darauf, dass Agenten die Leistung negativ beeinflussen. Darüber hinaus benötigen sie Schichten und Schichten von Failover - nur eine Redundanzmaschine reicht oft nicht aus.
Dennoch kann das Implementieren und Testen dieser Tools eine große Herausforderung für ein Wochenende sein!In den meisten Fällen bieten Tools wie New Relic einen großartigen Ausgangspunkt und bieten eine große Fähigkeit, Katastrophen zu verhindern. Es ist jedoch wichtig, sich der Kosten bewusst zu sein, die je nach Verwendung erheblich werden können
Das obige ist der detaillierte Inhalt vonMaximierung der Anwendung - PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!