Selbst unter eingefleischten ASP Entwicklern gibt es oft Dispute um den effektivsten Code. Natürlich ist immer der eigene Code der beste, aber davon mal abgesehen, wie schnell ist ASP wirklich im Vergleich zu ASP?
Um die komplexität der Frage zu demonstrieren möchte ich folgendes Beispiel nehmen.
<% for i = 1 to 1000 response.write("Zahl:"& cstr(i)+"<br>") next %> |
Variante 2
<script language=vbscript runat=server> for i = 1 to 1000 response.write("Zahl:"& cstr(i)+"<br>") next </script> |
Variante 3
<% for i = 1 to 1000%> Zahl:<%=cstr(i)%>"<br>" <%next %> |
Zum Testen wird das Web Application Stress Test Tool verwendet um die Zeiten zu messen. Von einer Messung in den Code eingebauten Timern ist abzuraten, da diese das Ergebnis deutlich beinflussen.
Normalerweise sollte das WAS Tool auf einer anderen Maschine als den Webserver ausgeführt werden. Über WAS können Sie hier auf DevTrain mehr nachlesen. So jetzt aber zum Test!
Ergebnis 1:
Page Results
================================================================================
URI: GET /xmlkino/test.asp
Hit Count: 4280
Result Codes
Code Description Count
--------------------------------------------------------------------------------
200 OK 4280
Time to first byte (in milliseconds)
--------------------------------------------------------------------------------
Average: 10.99
Min: 10.52
25th Percentile: 11.18
50th Percentile: 11.48
75th Percentile: 11.61
Max: 26.61
Time to last byte (in milliseconds)
--------------------------------------------------------------------------------
Average: 11.87
Min: 11.29
25th Percentile: 11.96
50th Percentile: 12.22
75th Percentile: 12.34
Max: 27.58
Downloaded Content Length (in bytes)
--------------------------------------------------------------------------------
Min: 11893
25th Percentile: 11893
50th Percentile: 11893
75th Percentile: 11893
Max: 11893
Socket Statistics
--------------------------------------------------------------------------------
Socket connects: 4281
Total Bytes Sent (in KB): 1055.33
Bytes Sent Rate (in KB/s): 17.86
Total Bytes Recv (in KB): 50449.38
Bytes Recv Rate (in KB/s): 853.88
Ergebnis 2:
Page Results
================================================================================
URI: GET /xmlkino/test.asp
Hit Count: 4296
Result Codes
Code Description Count
--------------------------------------------------------------------------------
200 OK 4296
Time to first byte (in milliseconds)
--------------------------------------------------------------------------------
Average: 11.17
Min: 10.52
25th Percentile: 11.28
50th Percentile: 11.56
75th Percentile: 11.69
Max: 36.13
Time to last byte (in milliseconds)
--------------------------------------------------------------------------------
Average: 12.01
Min: 11.31
25th Percentile: 12.04
50th Percentile: 12.31
75th Percentile: 12.42
Max: 36.82
Downloaded Content Length (in bytes)
--------------------------------------------------------------------------------
Min: 11893
25th Percentile: 11893
50th Percentile: 11893
75th Percentile: 11893
Max: 11893
Socket Statistics
--------------------------------------------------------------------------------
Socket connects: 4297
Total Bytes Sent (in KB): 1070.05
Bytes Sent Rate (in KB/s): 17.81
Total Bytes Recv (in KB): 50624.84
Bytes Recv Rate (in KB/s): 842.55
Ergebnis 3:
Page Results
================================================================================
URI: GET /xmlkino/test.asp
Hit Count: 4634
Result Codes
Code Description Count
--------------------------------------------------------------------------------
200 OK 4634
Time to first byte (in milliseconds)
--------------------------------------------------------------------------------
Average: 9.74
Min: 9.11
25th Percentile: 9.82
50th Percentile: 10.19
75th Percentile: 10.43
Max: 24.53
Time to last byte (in milliseconds)
--------------------------------------------------------------------------------
Average: 10.86
Min: 10.43
25th Percentile: 10.93
50th Percentile: 11.35
75th Percentile: 11.59
Max: 91.92
Downloaded Content Length (in bytes)
--------------------------------------------------------------------------------
Min: 18893
25th Percentile: 18893
50th Percentile: 18893
75th Percentile: 18893
Max: 18893
Socket Statistics
--------------------------------------------------------------------------------
Socket connects: 4635
Total Bytes Sent (in KB): 1154.22
Bytes Sent Rate (in KB/s): 19.21
Total Bytes Recv (in KB): 86285.62
Bytes Recv Rate (in KB/s): 1436.07
Ergebnis im Detail:
Deutlich ist zu erkennen, das zwischen 1 und 2 kein nennenswerter Unterschied besteht. Methode 3 mit den eingebetetten ASP Scripts ist aber deutlich schneller. Die Erklärung ist ( wie immer hinterher) einfach, es muss weniger Code durch den Compiler!
Solche Versuche können für die unterschiedlichsten Problemstellungen gemacht werden. Wenn Sie interessante Ergebnisse haben, mailen Sie diese an asp@ppedv.de!