Seite 12 - Web Performance
-
Maxim Mironjuk
-
September 05, 2025
Ungenutzter Code landet erstaunlich häufig trotzdem im Produktions-Bundle, weil CommonJS-Imports, Barrel-Files oder eine falsch gesetzte sideEffects-Flag den Bundler daran hindern, ihn zu entfernen. Dieser Artikel zeigt mechanisch, wie Tree Shaking funktioniert, welche Muster es blockieren, und wie Bundle-Analyzer-Tools die Ursachen mit konkreten Kilobyte-Zahlen sichtbar machen.
-
Maxim Mironjuk
-
September 03, 2025
Magento verlässt sich auf Cron für Indexierung, E-Mail-Versand und Aufräumarbeiten, doch ohne durchdachte Gruppenkonfiguration wächst die cron_schedule Tabelle und einzelne Jobs blockieren die gesamte Warteschlange. Dieser Artikel zeigt, wie Cron-Gruppen richtig getrennt, lange Jobs identifiziert und schwere synchrone Aufgaben durch Message Queue Consumers ersetzt werden, damit der Shop unter Last stabil bleibt.
-
Maxim Mironjuk
-
August 31, 2025
Sobald ein Magento Shop mit Microservices, externen APIs und asynchronen Queues arbeitet, verliert klassisches Logging jede Anfrage aus den Augen, sobald sie eine Systemgrenze überschreitet. Distributed Tracing mit OpenTelemetry verbindet jeden Teilschritt zu einer einzigen, durchgängigen Kette und macht sichtbar, wo genau Latenz entsteht.
-
Maxim Mironjuk
-
August 30, 2025
Block-Cache und Full Page Cache sind zwei unabhängige Cache-Ebenen, und wer sie verwechselt, produziert entweder Daten-Lecks zwischen Kunden oder einen Cache, der bei jeder Kleinigkeit komplett neu aufgebaut wird. Diese Hyvä Block-Cache-Strategie zeigt, wie cache_lifetime, getIdentities() und gezielte Invalidierung in Magento 2.4.8 mit PHP 8.4 sauber zusammenspielen, ohne den Full Page Cache zu brechen.
-
Maxim Mironjuk
-
August 27, 2025
Ein Performance-Budget setzt klare Obergrenzen für Ladezeit, Bundle-Größe und Anzahl der Requests, bevor ein Shop langsam wird, statt erst danach zu reagieren. Wer Budgets aus echten Baseline-Messungen ableitet und im Build automatisch prüft, verhindert, dass einzelne Deployments oder ein zusätzliches Skript die Performance schleichend verschlechtern, ohne dass es jemand bemerkt.
-
Maxim Mironjuk
-
August 26, 2025
Während ein regulärer Lasttest die Last über mehrere Minuten schrittweise erhöht, bildet ein Spike-Test bewusst das Gegenteil ab: einen plötzlichen, binnen Sekunden auftretenden Sprung von normaler Alltagslast auf ein Vielfaches davon, genau wie es beim Versand eines großen Newsletters mit einem zeitlich begrenzten Rabattcode oder beim Start eines Black-Friday-Sales tatsächlich geschieht. Dieses abrupte Lastprofil stellt an ein System völlig andere Anforderungen als eine langsam ansteigende Last, da Mechanismen wie Auto-Scaling oder aufwärmende Caches schlicht keine Zeit haben, sich gradüll anzupassen.
-
Maxim Mironjuk
-
August 26, 2025
Bevor man ReactPHP oder Swoole produktiv einsetzt, lohnt sich ein Blick auf das, was darunter tatsächlich passiert. Non-Blocking I/O in PHP basiert auf denselben Betriebssystem-Primitiven wie in jeder anderen Sprache: Sockets, die im Non-Blocking-Modus laufen, und stream_select, das signalisiert, welche Sockets bereit sind. Wer diese Grundlagen versteht, durchschaut jedes Async-Framework auf Anhieb.
-
Maxim Mironjuk
-
August 26, 2025
Der ReactPHP Event Loop ist das Herzstück jeder asynchronen PHP Anwendung mit React: ein einzelner Thread, der Timer verwaltet, Dateideskriptoren überwacht und Callbacks in einer klaren Reihenfolge ausführt. Wer den Tick Zyklus, die Timer Warteschlange und das Zusammenspiel mit Streams und Promises versteht, schreibt Code, der wirklich nicht blockiert, statt nur so auszusehen.
-
Maxim Mironjuk
-
August 25, 2025
Jede neue TCP- und TLS-Verbindung kostet mehrere Netzwerk-Umlaufzeiten, bevor das erste Nutzbyte beim Client ankommt, und dieser Aufbau wiederholt sich bei naiven Implementierungen bei jedem Request erneut. HTTP Keep-Alive, Connection Pools zwischen PHP-FPM und Backend-Diensten sowie modernes HTTP/2- und HTTP/3-Multiplexing vermeiden genau diesen Overhead. Dieser Artikel zeigt, wie Nginx, Redis, MySQL und Guzzle-Clients Verbindungen gezielt wiederverwenden.
-
Maxim Mironjuk
-
August 17, 2025
JavaScript läuft in Browsern auf einem einzigen Main Thread, der Rendering, Layout und Nutzereingaben gemeinsam verarbeitet. Dieser Artikel erklärt Call Stack, Task Queue und Microtask Queue im Detail, zeigt warum Tasks über fünfzig Millisekunden Rendering und Klicks blockieren, und liefert konkrete Techniken wie Chunking, requestIdleCallback und scheduler.yield, um lange Aufgaben in reaktionsfreundliche Häppchen aufzuteilen.
-