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
BearbeitenGenauigkeit der Abrufzeit-Differenzen bei +/- 1-2%
text=Lage | Vorlage:Coordinate/Test/Neu [1] | Vorlage:Coordinate [2] | ||||||
---|---|---|---|---|---|---|---|---|
Datum | Abrufzeit[1] | max. Koordinaten[2] | Preproc. node count[3] | Abrufzeit[1] | max. Koordinaten[2] | Preproc. node count[3] | ||
29. Juli 2011, 17:30[4] | 7,5 | -27% | 487 | -21% | 44.678 | 10,3 | 615 | 62.878 |
18. Juli 2011, 20:30[4][5] | 8,4 | -17% | 484 | -21% | 49.878 | 10,1 | 615 | 62.878 |
17. Juli 2011, 0:00[4][5] | 8,2 | -14% | 482 | -22% | 49.078 | 9,5 | 615 | 62.878 |
16. Juli 2011, 6:45[4][5] | 7,9 | -16% | 491 | -20% | 46.878 | 9,4 | 615 | 62.878 |
text=DMS | Vorlage:Coordinate/Test/Neu [3] | Vorlage:Coordinate [4] | ||||||
---|---|---|---|---|---|---|---|---|
Datum | Abrufzeit[1] | max. Koordinaten[2] | Preproc. node count[3] | Abrufzeit[1] | max. Koordinaten[2] | Preproc. node count[3] | ||
17. Juli 2011, 4:20[5] | 8,7 | -30% | 377 | -12% | 53.678 | 12,5 | 429 | 81.678 |
- ↑ a b c d 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 - ↑ a b c d 2048000 / Post-expand include size * 100, abgerundet
- ↑ a b c d bei 100 Koordinaten + etwas Overhead für die Testseite
- ↑ a b c d gegenüber der alten Vorlage gibt es eine zusätzliche Tooltip-Koordinatenanzeige, die etwas Performance und Speicherplatz kostet
- ↑ a b c d ständig eingebundene {{CoordinateMSG}} verschlechtert die Messwerte der neuen Vorlage
Messreihe 2
BearbeitenTestfall | Abrufzeiten, 16. Juli 6:45-7:00 [1][2] | Preprocessor node count | Post-expand include size | Template argument size | |
---|---|---|---|---|---|
Bytes | T.M.C.[3] | ||||
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 |
- ↑ in Sekunden pro 100 Koordinaten, Mittelwert des schnelleren Servers (s.o.) von 10 abwechselnden Messungen mit purge
- ↑ Messung mit
timeit wget
unter Windows, komplette Übertragung von HTTP-Request und Antwortdaten mit 2 MBit DSL - ↑ Theoretische maximale Koordinatenzahl pro Artikel, wenn der Artikel sonst keine Vorlagen enthalten würde
Messreihe 1
BearbeitenDie 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 [1][2] | Preprocessor node count | Post-expand include size | Template argument size |
---|---|---|---|---|
Vorlage:Coordinate/Test/100coord/Coordinate (original mit text=Lage)[3] | 11 | 62.878 | 333.096 | 116.615 |
Vorlage:Coordinate/Test/100coord/CoordinateDMS (original mit text= DMS)[3] | 16 | 81.678 | 476.491 | 129.330 |
Vorlage:Coordinate/Test/100coord/Lage (Vorlage:Lage)[4] | 4 | 6594 | 69.488 | 13.682 |
Vorlage:Coordinate/Test/100coord/CoordinateFull (Benutzer:PM3/Coordinate mit simple=n)[3] | 12 | 67.779 | 475.333 | 123.133 |
Vorlage:Coordinate/Test/100coord/CoordinateSimple (Benutzer:PM3/Coordinate mit simple=y)[4] | 5 | 7490 | 104.405 | 15.173 |
- ↑ in Sekunden pro 100 Koordinaten, Mittelwert über 5 Messungen mit purge
- ↑ Messung mit YSlow im FF 5.0 unter Windows, von send request bis Load Event.
- ↑ a b c ohne region-Prüfung
- ↑ a b inklusive region-Prüfung
timeit / wget
BearbeitenVerwendete 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