„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Steigerung der PHP-Effizienz: Bewährte Techniken zur Leistungsoptimierung

Steigerung der PHP-Effizienz: Bewährte Techniken zur Leistungsoptimierung

Veröffentlicht am 08.11.2024
Durchsuche:335

Boosting PHP Efficiency: Proven Techniques for Performance Optimization

Die Optimierung der PHP-Leistung stellt sicher, dass unsere Webanwendungen reibungslos laufen, schnell reagieren und den Datenverkehr effizient verarbeiten. Nachfolgend finden Sie eine detaillierte Schritt-für-Schritt-Anleitung zur effektiven Maximierung der PHP-Leistung mit praktischen Beispielen für jede Optimierungsstrategie.


Teil 1: Update auf die neueste stabile PHP-Version

Schritt 1: Überprüfen Sie die aktuelle PHP-Version

Überprüfen Sie zunächst die aktuelle Version von PHP, die auf Ihrem System installiert ist:

php -v

Wenn Ihre Version veraltet ist, bringt ein Upgrade auf die neueste stabile PHP-Version häufig Leistungsverbesserungen und neue Funktionen mit sich.

Schritt 2: PHP aktualisieren (falls erforderlich)

Um die neueste PHP-Version zu installieren, führen Sie die folgenden Befehle für Ubuntu aus:

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt install php8.2 # Replace with the latest version

Warum?

Jede neue PHP-Version bringt Leistungssteigerungen. Beispielsweise bietet PHP 7.x im Vergleich zu PHP 5.x eine Verbesserung der Ausführungszeit um fast 50 %, und PHP 8.x weist weitere signifikante Verbesserungen auf.


Teil 2: Opcode-Caching (PHP Opcache) verwenden

Schritt 1: Opcache in PHP aktivieren

Opcache speichert vorkompilierten Skript-Bytecode im Speicher, sodass PHP bei jeder Anfrage weniger Skripte laden und analysieren muss. Um es zu aktivieren:

  1. Öffnen Sie Ihre php.ini-Datei:
   sudo nano /etc/php/8.2/fpm/php.ini # Use your PHP version
  1. Suchen Sie die Opcache-Einstellungen und aktivieren Sie sie:
   opcache.enable=1
   opcache.memory_consumption=128
   opcache.max_accelerated_files=10000
   opcache.revalidate_freq=0
  1. PHP-FPM und Nginx neu starten:
   sudo systemctl restart php8.2-fpm
   sudo systemctl restart nginx

Warum?

Opcache kann die Leistung drastisch verbessern, indem es die Notwendigkeit eliminiert, PHP-Code bei jeder Anfrage zu kompilieren, wodurch die CPU-Auslastung und die Anfragezeit erheblich reduziert werden.


Teil 3: Datenbankabfragen optimieren

Schritt 1: Indizieren Sie Ihre Datenbanktabellen

Eine unsachgemäße Datenbankindizierung kann die Abfrageausführung verlangsamen. Stellen Sie sicher, dass Sie Spalten indizieren, die in WHERE-Klauseln oder zum Sortieren verwendet werden.

Beispiel für eine MySQL-Abfrage:

CREATE INDEX idx_user_email ON users(email);

Schritt 2: Verwenden Sie die Abfrageprofilerstellung

Profilieren Sie Ihre Datenbankabfragen, um Engpässe zu finden. Das Eloquent ORM von Laravel ermöglicht beispielsweise die Erstellung von Abfrageprofilen:

DB::enableQueryLog();
$users = DB::table('users')->get();
dd(DB::getQueryLog());

Warum?

Durch die Optimierung Ihrer Datenbankabfragen und die Indizierung kritischer Spalten können Sie die Ausführungszeit der Abfrage erheblich verkürzen und so Ihre PHP-Anwendung beschleunigen.


Teil 4: Gzip-Komprimierung aktivieren

Schritt 1: Aktivieren Sie Gzip in Nginx

Gzip reduziert die Größe der von Ihrem Server an den Client gesendeten Daten und beschleunigt so das Laden der Seite. Um es in Nginx zu aktivieren:

  1. Öffnen Sie die Nginx-Konfigurationsdatei:
   sudo nano /etc/nginx/nginx.conf
  1. Fügen Sie die folgenden Gzip-Einstellungen hinzu:
   gzip on;
   gzip_comp_level 2;
   gzip_types text/css application/javascript application/json image/svg xml;
   gzip_min_length 256;
  1. Speichern und starten Sie Nginx neu:
   sudo systemctl restart nginx

Warum?

Durch die Aktivierung der Gzip-Komprimierung wird die Menge der zu übertragenden Daten reduziert, was zu schnelleren Seitenladezeiten und einer geringeren Bandbreitennutzung führt.


Teil 5: Verwenden Sie ein Content Delivery Network (CDN)

Schritt 1: Konfigurieren Sie ein CDN für statische Assets

CDNs wie Cloudflare oder Amazon CloudFront speichern Kopien statischer Assets wie CSS, JavaScript und Bilder auf verteilten Servern weltweit und machen sie so näher am Benutzer verfügbar.

Beispiel:

Warum?

Durch die Auslagerung statischer Inhalte auf ein CDN reduzieren Sie die Belastung Ihres Servers und verbessern die Reaktionszeiten für Benutzer auf der ganzen Welt drastisch.


Teil 6: PHP-FPM und Tuning verwenden

Schritt 1: PHP-FPM installieren und konfigurieren

Stellen Sie sicher, dass Sie PHP-FPM (FastCGI Process Manager) verwenden, das besser für Hochlastumgebungen optimiert ist:

sudo apt install php8.2-fpm

Schritt 2: PHP-FPM-Einstellungen anpassen

Sie können die PHP-FPM-Einstellungen optimieren, um mehr Anfragen effizient zu bearbeiten, indem Sie die Einstellungen pm.max_children, pm.start_servers, pm.min_spare_servers und pm.max_spare_servers in der PHP-FPM-Pool-Konfigurationsdatei anpassen.

Bearbeiten Sie die Pool-Konfigurationsdatei:

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

pm.max_children basierend auf verfügbarem Speicher und Datenverkehr erhöhen:

pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

PHP-FPM und Nginx neu starten:

sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx

Warum?

Mit PHP-FPM können Ihre PHP-Prozesse mehr gleichzeitige Anfragen effizient verarbeiten und so die Antwortzeit des Servers bei hoher Auslastung verkürzen.


Teil 7: Assets minimieren und bündeln

Schritt 1: CSS, JavaScript und HTML minimieren

Die Minimierung Ihrer CSS-, JavaScript- und HTML-Dateien durch Entfernen unnötiger Leerzeichen und Kommentare reduziert die Dateigröße.

Verwenden Sie Tools wie Laravel Mix oder Gulp:

npm install laravel-mix --save-dev

Beispiel für eine webpack.mix.js-Datei für Laravel:

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .minify('public/js/app.js')
    .minify('public/css/app.css');

Schritt 2: Browser-Caching aktivieren

Fügen Sie in Ihrer Nginx-Konfigurationsdatei Caching für statische Assets hinzu:

location ~* \.(css|js|jpg|jpeg|png|gif|ico|woff|woff2)$ {
    expires 1y;
    access_log off;
    add_header Cache-Control "public";
}

Warum?

Durch die Minimierung und Bündelung von Assets sowie die Aktivierung des Browser-Cachings wird die Größe Ihrer Dateien reduziert und die Ladezeiten verkürzt, was zu einer schnelleren Anwendung führt.


Teil 8: Verwenden Sie Redis oder Memcached zum Caching

Schritt 1: Installieren Sie Redis

So installieren Sie Redis:

sudo apt install redis-server

Schritt 2: Konfigurieren Sie Laravel für die Verwendung von Redis

Öffnen Sie in Laravel die .env-Datei und konfigurieren Sie Redis als Cache-Treiber:

CACHE_DRIVER=redis

Schritt 3: Datenbankabfragen zwischenspeichern

Verwenden Sie Abfrage-Caching, um wiederholte Datenbankabfragen zu beschleunigen:

$users = Cache::remember('users', 60, function() {
    return DB::table('users')->get();
});

Warum?

Durch das Zwischenspeichern von Datenbankabfragen reduzieren Sie die Datenbanklast und verbessern die Antwortzeiten für häufig aufgerufene Daten drastisch.


Teil 9: Autoloader optimieren

Schritt 1: Verwenden Sie die Autoloader-Optimierung von Composer

Composer-Autoloader für die Produktion optimieren:

composer install --optimize-autoloader --no-dev

Schritt 2: Löschen Sie nicht verwendete Dienstanbieter

Deaktivieren Sie in Laravel alle nicht verwendeten Dienstanbieter in config/app.php, um die Speichernutzung zu reduzieren und die Startzeit der Anwendung zu beschleunigen.

Warum?

Autoload-Optimierung kompiliert Klassenzuordnungen und beschleunigt so das Laden von Klassen. Das Deaktivieren ungenutzter Dienste trägt dazu bei, dass die Anwendung weniger Ressourcen verbraucht.


Teil 10: Überwachung und Profilierung

Schritt 1: Verwenden Sie Laravel Telescope (oder andere Profilierungstools)

Installieren Sie Laravel Telescope, um Ihre Anwendung zu profilieren:

composer require laravel/telescope
php artisan telescope:install
php artisan migrate
php artisan serve

Schritt 2: Verwenden Sie New Relic oder Blackfire für die erweiterte Profilerstellung

Sie können Tools von Drittanbietern wie New Relic oder Blackfire integrieren, um Anwendungsengpässe, Datenbankleistung und mehr zu analysieren.

Warum?

Überwachungs- und Profilierungstools helfen dabei, langsame Abfragen, Speicherlecks und Engpässe in Ihrer PHP-Anwendung zu erkennen, sodass Sie Leistungsprobleme proaktiv beheben können.


Abschluss:

Indem Sie diese Schritte befolgen, können Sie die Leistung Ihrer PHP-Anwendung erheblich verbessern. Von der Aktualisierung von PHP und der Aktivierung von Opcode-Caching bis hin zur Optimierung von Datenbankabfragen und der Konfiguration von PHP-FPM trägt jeder Schritt zu einer reaktionsschnelleren und skalierbareren Anwendung bei.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/mdarifulhaque/boosting-php-efficiency-proven-techniques-for-performance-optimization-4plh?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3