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

Bearbeiten

Genauigkeit 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
  1. 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
  2. a b c d 2048000 / Post-expand include size * 100, abgerundet
  3. a b c d bei 100 Koordinaten + etwas Overhead für die Testseite
  4. a b c d gegenüber der alten Vorlage gibt es eine zusätzliche Tooltip-Koordinatenanzeige, die etwas Performance und Speicherplatz kostet
  5. a b c d ständig eingebundene {{CoordinateMSG}} verschlechtert die Messwerte der neuen Vorlage

Messreihe 2

Bearbeiten
Testfall 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
  1. in Sekunden pro 100 Koordinaten, Mittelwert des schnelleren Servers (s.o.) von 10 abwechselnden Messungen mit purge
  2. Messung mit timeit wget unter Windows, komplette Übertragung von HTTP-Request und Antwortdaten mit 2 MBit DSL
  3. Theoretische maximale Koordinatenzahl pro Artikel, wenn der Artikel sonst keine Vorlagen enthalten würde

Messreihe 1

Bearbeiten

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 [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
  1. in Sekunden pro 100 Koordinaten, Mittelwert über 5 Messungen mit purge
  2. Messung mit YSlow im FF 5.0 unter Windows, von send request bis Load Event.
  3. a b c ohne region-Prüfung
  4. a b inklusive region-Prüfung

timeit / wget

Bearbeiten

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