ProcessWire - Performance: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 38: Zeile 38:
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
== Performance und Repeater Matrix ==
 +
=== Backend ===
 +
* Repeater Items per AJAX laden
 +
https://processwire.com/blog/posts/more-repeaters-repeater-matrix-and-new-field-rendering/#repeater-upgrades-continued-in-pw-3.0.5
 +
=== Frontend ===
 +
* Können viele Datenbank (PDO) Queries auslösen, da alle Page Objekte geladen werden müssen.
 +
 +
=== Auswahl aus verschiedenen Repeatern über ein Select, statt einzelnes RepeaterMatrix Feld ===
 +
Evtl. könnte man ein Auswahlfeld generieren, das dann wiederum einen Contentblock wählt, statt alles in ein RepeaterMatrix Feld zu packen.
 +
 +
* Layoutblock -> Select Feld
 +
* Optionen werden geladen.

Version vom 12. Februar 2020, 11:07 Uhr

Caching

wireCache

Performance Testen

Zeit und RAM

// 8000 pages with title and body fields
$pp = $pages('template=basic, parent=1384');
$out = '';
foreach($pp as $p) {
    $t = $p->title . microtime();
    $b = $p->body . mt_rand(0, 1e5);
    $out .= $t . $b;
}
echo strlen($out);
// 18384.08ms, 25.00 MB
 
// 8000 pages with title and body fields
$pp = $pages('template=basic, parent=1384');
$out = '';
foreach($pp as $p) {
    $out .= $p->title . microtime();
    $out .= $p->body . mt_rand(0, 1e5);
}
echo strlen($out);
// 17617.05ms, 25.00MB
 
$out = '';
foreach($pages('template=basic, parent=1384') as $p) {
    $out .= $p->title . microtime();
    $out .= $p->body . mt_rand(0, 1e5);
}
echo strlen($out);
// 17927.9ms, 25.00MB

Performance und Repeater Matrix

Backend

  • Repeater Items per AJAX laden
https://processwire.com/blog/posts/more-repeaters-repeater-matrix-and-new-field-rendering/#repeater-upgrades-continued-in-pw-3.0.5

Frontend

  • Können viele Datenbank (PDO) Queries auslösen, da alle Page Objekte geladen werden müssen.

Auswahl aus verschiedenen Repeatern über ein Select, statt einzelnes RepeaterMatrix Feld

Evtl. könnte man ein Auswahlfeld generieren, das dann wiederum einen Contentblock wählt, statt alles in ein RepeaterMatrix Feld zu packen.

  • Layoutblock -> Select Feld
  • Optionen werden geladen.