Vorlage:Coordinate/Test/Performance
Vorlage:Dokumentation/Seitenhinweis Testfälle für die Performance von Coordinate; und eventueller Verbesserungen.
Beim Testen der Abrufzeiten fällt auf, dass die Messwerte jeweils zwischen zwei verschiedenen Bereichen hin und her springen, zum Beispiel liegt ein Teil der Werte bei 9,4 +/- 0,3 Sekunden, und der Rest bei 12,5 +/- 0,2 Sekunden. Anscheined gibt es zwei verschieden schnelle Gruppen von Servern, und man landet zufällig auf der einen oder dem anderen (und zwar häufiger auf der schnelleren, die hat wohr mehr Server).
Um das statistisch auszugleichen, wären sehr umfangreiche, aufwändige Messreihen nötig. Stattdessen wurden ab Messreihe 2 einfach nur noch die Zeiten des jeweils schnelleren Servers berücksichtigt. Dadurch ergeben sich recht gering gestreute und sehr gut vergleichbare Ergebnisse.
Messreihe 3
Genauigkeit der Abrufzeit-Differenzen bei +/- 1-2%
| text=Lage | Vorlage:Coordinate/Test/Neu [1] | Vorlage:Coordinate [2] | ||||||
|---|---|---|---|---|---|---|---|---|
| Datum | Abrufzeit<ref name=messung /> | max. Koordinaten<ref name=max /> | Preproc. node count<ref name=ppnc /> | Abrufzeit<ref name=messung>in Sekunden pro 100 Koordinaten, Mittelwert des schnelleren Servers (s.o.) von 15 abwechselnden Messungen mit purge; Messung mit timeit wget unter Windows, komplette Übertragung von HTTP-Request und Antwortdaten mit 2 MBit DSL</ref>
|
max. Koordinaten<ref name=max>2048000 / Post-expand include size * 100, abgerundet</ref> | Preproc. node count<ref name=ppnc>bei 100 Koordinaten + etwas Overhead für die Testseite</ref> | ||
| 29. Juli 2011, 17:30<ref name=tooltip /> | 7,5 | -27% | 487 | -21% | 44.678 | 10,3 | 615 | 62.878 |
| 18. Juli 2011, 20:30<ref name=tooltip /><ref name=msg /> | 8,4 | -17% | 484 | -21% | 49.878 | 10,1 | 615 | 62.878 |
| 17. Juli 2011, 0:00<ref name=tooltip /><ref name=msg /> | 8,2 | -14% | 482 | -22% | 49.078 | 9,5 | 615 | 62.878 |
| 16. Juli 2011, 6:45<ref name=tooltip>gegenüber der alten Vorlage gibt es eine zusätzliche Tooltip-Koordinatenanzeige, die etwas Performance und Speicherplatz kostet</ref><ref name=msg>ständig eingebundene {{CoordinateMSG}} verschlechtert die Messwerte der neuen Vorlage</ref> | 7,9 | -16% | 491 | -20% | 46.878 | 9,4 | 615 | 62.878 |
| text=DMS | Vorlage:Coordinate/Test/Neu [3] | Vorlage:Coordinate [4] | ||||||
|---|---|---|---|---|---|---|---|---|
| Datum | Abrufzeit<ref name=messung /> | max. Koordinaten<ref name=max /> | Preproc. node count<ref name=ppnc /> | Abrufzeit<ref name=messung /> | max. Koordinaten<ref name=max /> | Preproc. node count<ref name=ppnc /> | ||
| 17. Juli 2011, 4:20<ref name=msg /> | 8,7 | -30% | 377 | -12% | 53.678 | 12,5 | 429 | 81.678 |
<references />
Messreihe 2
| Testfall | Abrufzeiten, 16. Juli 6:45-7:00 <ref>in Sekunden pro 100 Koordinaten, Mittelwert des schnelleren Servers (s.o.) von 10 abwechselnden Messungen mit purge</ref><ref name=wget>Messung mit timeit wget unter Windows, komplette Übertragung von HTTP-Request und Antwortdaten mit 2 MBit DSL</ref>
|
Preprocessor node count | Post-expand include size | Template argument size | |
|---|---|---|---|---|---|
| Bytes | T.M.C.<ref>Theoretische maximale Koordinatenzahl pro Artikel, wenn der Artikel sonst keine Vorlagen enthalten würde</ref> | ||||
| Vorlage:Coordinate/Test/100coord/Coordinate (original mit text=Lage) | 9,4 | 62.878 | 333.096 | 615 | 116.615 |
| Vorlage:Coordinate/Test/100coord/CoordinateDMS (original mit text= DMS) | 12,6 | 81.678 | 476.491 | 429 | 129.330 |
| Vorlage:Coordinate/Test/100coord/Lage (Vorlage:Lage) | 1,9 | 7976 | 83.116 | 2464 | 15.409 |
| Vorlage:Coordinate/Test/100coord/CoordinateFull (Benutzer:PM3/Coordinate mit simple=n) | 10,0 | 67.780 | 383.407 | 534 | 123.333 |
| Vorlage:Coordinate/Test/100coord/CoordinateSimple (Benutzer:PM3/Coordinate mit simple=y) | 2,3 | 12.480 | 114.670 | 1786 | 23.927 |
| Vorlage:Coordinate/Test/100coord/CoordinateNeu (Vorlage:Coordinate/Test/Neu mit text=Lage) | 7,9 | 46.878 | 416.534 | 491 | 156.679 |
- die einzelnen Messwerte
| Coordinate "Lage" | Coordinate DMS | Lage | PM3/Coordinate simple=n | PM3/Coordinate simple=y | CoordnateNeu "Lage" |
|---|---|---|---|---|---|
| 9,3 | 16,7 | 1,9 | 13,2 | 4,1 | 7,8 |
| 9,3 | 16,8 | 1,9 | 13,3 | 2,3 | 7,5 |
| 9,8 | 12,6 | 2,0 | 9,9 | 2,3 | 7,7 |
| 9,4 | 12,3 | 1,9 | 10,2 | 2,3 | 9,7 |
| 9,2 | 12,4 | 2,3 | 9,9 | 2,3 | 10,0 |
| 9,3 | 12,9 | 2,3 | 13,3 | 2,3 | 7,8 |
| 9,3 | 16,6 | 1,9 | 13,2 | 2,3 | 7,8 |
| 9,9 | 16,7 | 1,9 | 10,1 | 2,3 | 7,5 |
| 12,3 | 12,4 | 1,9 | 13,2 | 2,9 | 7,6 |
| 12,5 | 13,1 | 2,4 | 9,9 | 2,8 | 10,0 |
<references />
Messreihe 1
Die Vorlage:Lage und die Benutzer:PM3/Coordinate enthielten hier noch Prüfcode für den region-Parameter, die Vorlage:Coordinate nicht. Dadurch sind die Messwerte nur eingeschränkt vergleichbar.
| Testfall | Antwortzeiten, 14. Juli ~22:00 <ref>in Sekunden pro 100 Koordinaten, Mittelwert über 5 Messungen mit purge</ref><ref>Messung mit YSlow im FF 5.0 unter Windows, von send request bis Load Event.</ref> | Preprocessor node count | Post-expand include size | Template argument size |
|---|---|---|---|---|
| Vorlage:Coordinate/Test/100coord/Coordinate (original mit text=Lage)<ref name="exklReg">ohne region-Prüfung</ref> | 11 | 62.878 | 333.096 | 116.615 |
| Vorlage:Coordinate/Test/100coord/CoordinateDMS (original mit text= DMS)<ref name="exklReg"/> | 16 | 81.678 | 476.491 | 129.330 |
| Vorlage:Coordinate/Test/100coord/Lage (Vorlage:Lage)<ref name="inklReg">inklusive region-Prüfung</ref> | 4 | 6594 | 69.488 | 13.682 |
| Vorlage:Coordinate/Test/100coord/CoordinateFull (Benutzer:PM3/Coordinate mit simple=n)<ref name="exklReg"/> | 12 | 67.779 | 475.333 | 123.133 |
| Vorlage:Coordinate/Test/100coord/CoordinateSimple (Benutzer:PM3/Coordinate mit simple=y)<ref name="inklReg"/> | 5 | 7490 | 104.405 | 15.173 |
<references />
timeit / wget
Verwendete Batchdatei zum Messen der Vorlagenperformance; Windows XP; timeit aus dem Windows Resource Kit von Microsoft, wget von hier.
timeit wget "http://de.wikipedia.org/w/index.php?title=Vorlage:Coordinate/Test/100coord/Coordinate" --post-data action=purge -O NUL -q timeit wget "http://de.wikipedia.org/w/index.php?title=Vorlage:Coordinate/Test/100coord/CoordinateDMS" --post-data action=purge -O NUL -q timeit wget "http://de.wikipedia.org/w/index.php?title=Vorlage:Coordinate/Test/100coord/Lage" --post-data action=purge -O NUL -q timeit wget "http://de.wikipedia.org/w/index.php?title=Vorlage:Coordinate/Test/100coord/CoordinateFull" --post-data action=purge -O NUL -q timeit wget "http://de.wikipedia.org/w/index.php?title=Vorlage:Coordinate/Test/100coord/CoordinateSimple" --post-data action=purge -O NUL -q timeit wget "http://de.wikipedia.org/w/index.php?title=Vorlage:Coordinate/Test/100coord/CoordinateNeu" --post-data action=purge -O NUL -q