Skip to content

Changelog

Version 1.4.2 (2026-10-29)

  • Neu: Der Indexer-Audit (copex:performance:recommendations --group=indexers) prüft jetzt die Stellschrauben, die Lock-Waits zwischen Reindex und ERP-/API-Schreibzugriffen verursachen:
  • db/transaction_isolation und db/binlog_format der Magento-Verbindung. Unter REPEATABLE-READ hält das INSERT … SELECT des Reindex Shared-Next-Key-Locks auf jeder gelesenen EAV-Zeile, unter READ-COMMITTED liest es lockfrei (MySQL-Handbuch 17.7.3). WARN, sobald mindestens ein Indexer auf Schedule läuft; die Notiz zeigt den Weg über db/connection/default/driver_options in der env.php, der nur Magento betrifft
  • db/innodb_lock_wait_timeout (INFO ab 30 s)
  • catalog_product_price/dimensions_mode — INFO bei none, wenn mehr als eine Website oder mehr als acht Kundengruppen in einer Preistabelle liegen
  • indexer/use_application_lock (INFO, wenn nicht gesetzt; magento/magento2#12266)
  • Changelog-Backlog je Indexer: MAX(version_id) der _cl-Tabelle gegen mview_state; INFO ab 10 000, WARN ab 100 000 offenen Einträgen
  • Modus- und Status-Check zusätzlich für cataloginventory_stock, inventory, catalogsearch_fulltext und catalog_product_attribute. Indexer, die auf der Instanz nicht existieren (z. B. inventory ohne MSI), werden übersprungen
  • Geändert: Die Batch-Size-Empfehlung für catalog_product_price rechnet jetzt wie der Core (BatchSizeManagement): Zeilen × geschätzte Zeilengröße (max. Relationen × Websites × Kundengruppen × 200 B) müssen unter 20 % von innodb_buffer_pool_size bleiben. Die bisher pauschale Empfehlung „10 000 ab 20 K Produkten" entfällt — sie widersprach der Adobe-Doku, in der das Senken von 5000 auf 1000 einen 4-h-Reindex halbiert hat. Der geprüfte Pfad ist indexer/batch_size/catalog_product_price/default, der Default für catalog_category_product wird mit dem korrekten Core-Wert 100 000 ausgegeben

Version 1.4.1 (2026-10-23)

  • Fix: ProductCollectionLoadPlugin legt geladene Collection-Items nicht mehr in der Registry-Domain product_instances ab. copex/module-preloaders bis 1.2.0 hat daraus ProductRepository::getById() beantwortet und so unvollständige Produkte ausgeliefert — ein Collection-Item enthält nur die selektierten Attribute. Das Batch-Preloading (preloadFor('product', …)) läuft unverändert. Die Konstante DOMAIN bleibt als @deprecated erhalten, weil preloaders 1.2.0 sie importiert, und fällt im nächsten Minor weg

Version 1.4.0 (2026-08-07)

  • Neu: bin/magento copex:performance:flags zeigt alle copex/*-Schalter aus der env.php mit Wert und Default — und meldet jeden Schlüssel, den kein Modul auswertet. Magento ignoriert einen unbekannten Schlüssel kommentarlos, ein Tippfehler oder ein veralteter Pfad sieht deshalb aus wie eine korrekte Konfiguration. --strict liefert dafür Exit-Code 1, etwa für eine Deploy-Pipeline. Module melden ihre Flags über das knownFlags-Argument von ConfigCommand an

Version 1.3.2 (2026-08-07)

  • Doku-Fix: Der Aktivierungsschalter heißt copex/performance/preloaders/enabled. Die bisher dokumentierten Pfade copex/performance/enabled und copex/performance/preloaders_enabled werden von keinem Modul ausgewertet — wer sie gesetzt hatte, lief ohne Preloader. Zusätzlich korrigiert: min_batch_size und chunk_size liegen unter preloaders, der Default für chunk_size ist 1000 (nicht 500); disabled_domains existierte nie

Version 1.3.1 (2026-08-03)

  • Compatibility with Magento 2.4.9

Version 1.3.0 (2026-06-17)

  • copex:performance:benchmark erhält die Optionen --store und --sku. Die Werte werden über den neuen, prozessweit geteilten BenchmarkParameters-Halter (Api\BenchmarkParametersInterface) an die einzelnen Benchmarks weitergereicht. Benchmarks, die einen Store/eine SKU brauchen (Cart, PDP), nehmen ihn von dort statt automatisch zu raten oder aus der Config zu lesen — fehlt der Wert, brechen sie mit klarer Meldung ab

Version 1.2.0 (2026-06-17)

  • Audit-Befehle konsolidiert: die vier Einzelbefehle copex:performance:audit:layout-cache|redis|modules|indexers wurden entfernt und in copex:performance:recommendations zusammengeführt. Die Prüflogik lebt jetzt in wiederverwendbaren Model\Audit\*Auditor-Services
  • copex:performance:recommendations erhält den Filter --group=layout,redis,modules,indexers,production, um gezielt ein Subsystem zu prüfen (steuert auch den Exit-Code)
  • copex:performance:http-benchmark fragt jetzt Store-View, SKU und Kategorie ab (bzw. Optionen --store, --sku, --category), statt Produkt-/Kategorieseite automatisch zu erraten

Version 1.1.4 (2026-06-03)

  • Neuer interceptor_dispatch_100k-Benchmark: misst den reinen Plugin-Dispatch-Overhead (isoliert) — zeigt den Gewinn der Compiled Interceptors im di:compile-A/B (gemessen ~134 ms → ~35 ms, −74 %)
  • Config::getRuntimeOverride() ergänzt, damit weitere Suite-Optimierungen (EAV-Precompile) demselben --compare-Toggle folgen

Version 1.1.3 (2026-06-02)

  • suggest-Einträge ergänzt: copex/module-eav-precompile, copex/module-compiled-interceptors (experimentell) und das Upstream-Paket creatuity/magento2-interceptors

Version 1.1.2 (2026-05-31)

  • OPcache-Audit (copex:performance:recommendations) prüft jetzt zusätzlich opcache.enable_cli (Empfehlung 1 für schnellere CLI-Prozesse wie setup:di:compile)
  • opcache.memory_consumption-Empfehlung präzisiert: mind. 512 MB, 1–2 GB für große Multi-Store-Kataloge / Adobe Cloud

Version 1.1.1 (2026-05-31)

  • copex:performance:benchmark führt die Messung jetzt in einer Frontend-Area-Emulation aus, damit die area-gateten Preloader im CLI überhaupt feuern — --compare zeigt dadurch den echten Nutzen statt 0 Differenz (z. B. Kategorieseite −83 SELECTs / −85 %)

Version 1.1.0 (2026-05-31)

  • Benchmarks zeigen jetzt zusätzlich zur Zeit (ms, median + p95) die DB-Last als SELECT-Anzahl pro Lauf
  • Neuer --compare-Modus für copex:performance:benchmark: misst mit Preloadern AUS und AN und zeigt die Ersparnis (ms + Queries)
  • Neuer Befehl copex:performance:http-benchmark: Black-Box-Messung der echten Frontend-Antwortzeit (total + TTFB) gegen automatisch erkannte Produkt-, Kategorie- und Startseiten; Optionen --no-cache (kalter Render per Cache-Bust, ohne Cache-Flush) und --compare (OFF/ON mit Produktions-Schutz)

Version 1.0.1 (2026-05-28)

  • Minor bugfixes

Version 1.0.0 (2026-05-28)

  • Erste stabile Version
  • Gemeinsame Infrastruktur für alle CopeX-Performance-Module
  • Anfrage-scoped Produktcache eliminiert doppelte Datenbankabfragen innerhalb einer Anfrage
  • CLI-Befehle für Benchmarks, Audits und Build-Zeit-Optimierungen
  • OPcache-Preload-Skript für PHP-FPM-Startup-Optimierung
  • Dreistufiges Kill-Switch-System: globaler Schalter, Domain-spezifisch, automatisch bei Fehlern
  • Persistente-Worker-Unterstützung (FrankenPHP, RoadRunner)