Vorlage:Coordinate/Test/Performance

Aus Cowboy's Wiki
Wechseln zu: Navigation, Suche
Test-Unterseite

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

Messreihe 2

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) 000000000000009,40000000009,4 000000000062878.000000000062.878 000000000333096.0000000000333.096 000000000000615.0000000000615 000000000116615.0000000000116.615
Vorlage:Coordinate/Test/100coord/CoordinateDMS (original mit text= DMS) 000000000000012,600000000012,6 000000000081678.000000000081.678 000000000476491.0000000000476.491 000000000000429.0000000000429 000000000129330.0000000000129.330
Vorlage:Coordinate/Test/100coord/Lage (Vorlage:Lage) 000000000000001,90000000001,9 000000000007976.00000000007.976 000000000083116.000000000083.116 000000000002464.00000000002.464 000000000015409.000000000015.409
Vorlage:Coordinate/Test/100coord/CoordinateFull (Benutzer:PM3/Coordinate mit simple=n) 000000000000010.000000000010,0 000000000067780.000000000067.780 000000000383407.0000000000383.407 000000000000534.0000000000534 000000000123333.0000000000123.333
Vorlage:Coordinate/Test/100coord/CoordinateSimple (Benutzer:PM3/Coordinate mit simple=y) 000000000000002,30000000002,3 000000000012480.000000000012.480 000000000114670.0000000000114.670 000000000001786.00000000001.786 000000000023927.000000000023.927
Vorlage:Coordinate/Test/100coord/CoordinateNeu (Vorlage:Coordinate/Test/Neu mit text=Lage) 000000000000007,90000000007,9 000000000046878.000000000046.878 000000000416534.0000000000416.534 000000000000491.0000000000491 000000000156679.0000000000156.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

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] 000000000000011.000000000011 000000000062878.000000000062.878 000000000333096.0000000000333.096 000000000116615.0000000000116.615
Vorlage:Coordinate/Test/100coord/CoordinateDMS (original mit text= DMS)[3] 000000000000016.000000000016 000000000081678.000000000081.678 000000000476491.0000000000476.491 000000000129330.0000000000129.330
Vorlage:Coordinate/Test/100coord/Lage (Vorlage:Lage)[4] 000000000000004.00000000004 000000000006594.00000000006.594 000000000069488.000000000069.488 000000000013682.000000000013.682
Vorlage:Coordinate/Test/100coord/CoordinateFull (Benutzer:PM3/Coordinate mit simple=n)[3] 000000000000012.000000000012 000000000067779.000000000067.779 000000000475333.0000000000475.333 000000000123133.0000000000123.133
Vorlage:Coordinate/Test/100coord/CoordinateSimple (Benutzer:PM3/Coordinate mit simple=y)[4] 000000000000005.00000000005 000000000007490.00000000007.490 000000000104405.0000000000104.405 000000000015173.000000000015.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. 3,0 3,1 3,2 ohne region-Prüfung
  4. 4,0 4,1 inklusive region-Prüfung

timeit / wget

Verwendete Batchdatei zum Messen der Vorlagenperformance; Windows XP; timeit aus dem Windows Resource Kit von Microsoft, wget von hier.

timeit wget "http://wiki.cowboy-of-bottrop.de/index.php?title=Vorlage:Coordinate/Test/100coord/Coordinate" --post-data action=purge -O NUL -q
timeit wget "http://wiki.cowboy-of-bottrop.de/index.php?title=Vorlage:Coordinate/Test/100coord/CoordinateDMS" --post-data action=purge -O NUL -q
timeit wget "http://wiki.cowboy-of-bottrop.de/index.php?title=Vorlage:Coordinate/Test/100coord/Lage" --post-data action=purge -O NUL -q
timeit wget "http://wiki.cowboy-of-bottrop.de/index.php?title=Vorlage:Coordinate/Test/100coord/CoordinateFull" --post-data action=purge -O NUL -q
timeit wget "http://wiki.cowboy-of-bottrop.de/index.php?title=Vorlage:Coordinate/Test/100coord/CoordinateSimple" --post-data action=purge -O NUL -q
timeit wget "http://wiki.cowboy-of-bottrop.de/index.php?title=Vorlage:Coordinate/Test/100coord/CoordinateNeu" --post-data action=purge -O NUL -q