låter nog som man borde skippa ASP och VBscript och satsa på C# och PHP fast ändå... så tror jag nog jag tar och lär mig ASP med VBscript nu och PHP innan jag hoppar på C#, Jscript vet jag nu inte...
Testa serverns hastighet :)
136 svar · 5 653 visningar · startad av Brimba · sida 4 av 7
Trådstarten, av Brimba
Hej! Vad får ni för resultat när ni kör följande kod: <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><HTML> <TITLE>Test</TITLE> <BODY> <% dim stime,numloops numloops=10000000 stime = now() for i=0 to numloops a=i next dtime = datediff("s",stime,now()) response.write ("time to run for next loop " & numloops & " times= " & dtime) %> </BODY> </HTML></font> J
Läs hela trådstarten →Om vi bortser från hur ovetenskapligt det här testet är, så är det ganska ointressant i vilket fall som helst. At snurra tio miljoner varv i en loop är ju inte direkt det vanligaste man gör...
Helt rätt Spango!
Vem använder ASP till sådant? Inte jag iaf. Lite logik och presentation av data fungerar finemang!
Jag tyckte testet var relevant. Kanske inte direkt men väl indirekt. Om man gör samma test på två datorer borde väl endå svaret vara en visning om hur allt står till.
Det förklarar varför mina ansträgningar att hacka jystare kod inte gör någon skillnad när vårt webbhotell har en dator som är fem gånger slöare än vår egen utvecklingsdator.
I det sammanhanget tycker jag testet är relevant men annars håller jag med, tio miljoner loopar hör inte till vardagspysslorna. :-)
Man kan egentligen sammanfatta det så här med andra ord: Vbscript är sämst.
Det är fel väg tycker jag att testa serverns prestanda med en for loop i VB.
En webserver består av så mycket mer än bara IIS och en ASP tolk. Det finns massor av inställningar man kan göra, antal virtuella domäner, nätkapacitet osv. En liten ASP snutt talar egentligen bara om hur fort det gick att köra den kodbiten just då, och inget om prestandan på servern. När man mäter prestanda så måste man ta med belastning en, i detta fall kanske om 10000 besökare under 5 minuter kör VB loopen.
Det kan man bara göra med speciell programvara (Homer, Stresstest) från en annan dator.
/T
Jo naturligtvis Toonster, jag syftade på ett benchmark test mellan Vbscript och Jscript som någon postade...
Jag funderar allvarligt på att lära mig det.
Konstigt, körde Vbsscriptet på en:
Processor: celeron 633 MHz
Ram-minne: 128
Resultat: 8 sekunder
Processor: AMD 800 MHz
Ram-minne: 128
Resultat: 12 sekunder
Hur kan detta vara möjligt?
Basse: Mjuvaran har mycket att göra också.
Kanske PWS på ena och IIS på andra? Olika versioner? Vem vet
Hallå!
Jag har utfört ett test mellan ASP och PHP, och resultatet blev följande:
Test 1 - For-loopen
Jag testade hur lång tid det tog för en tom loop att köras 10 000 000 gånger.
I ASP såg det ut så här:
<%
iStart = now()
For i = 0 To 10000000
Next
iEnd = now()
Response.Write DateDiff("s", iStart, iEnd)
%>
Resultat: 10 sekunder
I PHP såg det ut så här:
<?php
$start = microtime();
for($i = 0; $i < 10000000; $i++) {
}
$end = microtime();
function sekunder($time) {
list($usec, $sec) = explode(" ", $time);
return ((float)$usec + (float)$sec);
}
echo (sekunder($end) - sekunder($start));
?>
Resultat: 22 sekunder
Test 2 - Databaser
Jag testade hur lång tid det tog att connecta till en MySQL-databas, lägga in 10 000 poster och sedan rensa hela databasen.
I ASP såg det ut så här:
<%
iStart = now()
set objC = Server.CreateObject("ADODB.Connection")
objC.Open "driver=MySQL; server=burken; uid=; pwd=; database=testdb"
For i=0 To 10000
sSQL = "INSERT INTO testtbl (sida, loopnr) VALUES('" & Request.ServerVariables("SCRIPT_NAME") & "', '" & i & "')"
objC.Execute(sSQL)
Next
sSQL = "DELETE FROM testtbl"
objC.Execute(sSQL)
objC.Close
set objC = Nothing
iEnd = now()
Response.Write DateDiff("s", iStart, iEnd)
%>
Resultat: 14 sekunder
I PHP såg det ut så här:
<?php
$start = microtime();
mysql_connect("burken", "", "");
mysql_select_db("testdb");
for($i = 0; $i < 10000; $i++) {
$sSQL = "INSERT INTO testtbl (sida, loopnr) VALUES('" . $PHP_SELF . "', '" . $i . "')";
mysql_query($sSQL);
}
$sSQL = "DELETE FROM testtbl";
mysql_query($sSQL);
mysql_close();
$end = microtime();
function sekunder($time) {
list($usec, $sec) = explode(" ", $time);
return ((float)$usec + (float)$sec);
}
echo (sekunder($end) - sekunder($start));
?>
Resultat: 6 sekunder
Sammanfattning
ASP är snabbare på tomma loopar, men PHP gäller när man ska använda sina script till något
På min dator en sunkig 166MHZ 32mb ram med Win 98 och PWS fick jag 68 sek på testet. Men när jag sedan ändrade looparna till 9999999 så tog det mer än 200 sek (timeout)
LilleSkutt
Man blir ju alldeles varm hjärtat av din sammanfattning
känner mig lite besviken
fick:
time to run for next loop 10000000 times= 13
På en ny installerad Win2K server med följande prylar:
Dual PIII 933EB MHz PC133 256kB
2GB SDRam PC133
4 st Western Digital 80GB 7200rpm ATA-100
ABIT VP6 moderkort
13 på brinkster.com premium.
Mera tester med originalscriptet
Jag fick:
time to run for next loop 10000000 times= 9
På följande dator:
Win 2K Server
P4 1.5 GHz
256 MB Ram
Drar upp en nygammal tråd här igen.
Men var tvungen att testa IIS efter att ha kört PWS.
Tidigare värden med PWS:
... jag fick 10 sekunder
amd 1ghz, 128 ram, pws 4 win98
Numera, 9 sekunder med IIS 5.1
Kör med ASP på Powerwebs... Första testet med "orginalkoden" fick jag pinsamt nog: 37 sek
När jag använde den andra varianten där samtliga variabler deklarerades
(dim stime,numloops, a, i, dtime) fick jag: 16 sek
Snacka om skillnad!





