Du kan ju inte koda ett eget test och sedan jämföra det med det andra testet.
Med tanke på att koden är helt likvärdig så jo, det går bra
Är det ingen som testat JScript-varianten? Jag har hört rykten om att JScript ska spöa vbscript ganska hårt.
136 svar · 5 653 visningar · startad av Brimba · sida 3 av 7
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 →Du kan ju inte koda ett eget test och sedan jämföra det med det andra testet.
Med tanke på att koden är helt likvärdig så jo, det går bra
Är det ingen som testat JScript-varianten? Jag har hört rykten om att JScript ska spöa vbscript ganska hårt.
Hmm... Du kan ju inte koda ett eget test och sedan jämföra det med det andra testet.
Som spango skriver så är ju min Javakod exakt översatt från ASP-koden så det borde ju gå. Det enda som mitt test dock visar är ju att koden optimeras otroligt mycket bättre i Java, inte att min gamla 133a är snabbare än era fartmonster.
Dock borde det ge en liten hint åt alla förtappade ASP-människor som sitter på fetburkar. Era hårdvarukostnader står i direkt relation till den dåliga mjukvaruteknik ni använder.
har nån provat det med PHP eller .NET?
Med din jscript kod:
"Det tog 31125 millisekunder att snurra 10000000 varv."
NGH?
tog 21 sekunder med det vanliga vbscriptet
"Det tog 16234 millisekunder att snurra 10000000 varv."
- 800 Mhz, W2000 Server. Vår utvecklingsdator.
"Det tog 87031 millisekunder att snurra 10000000 varv."
- Vår internetleverantörs dator där vi och våra kunder har hemsidan på... Fan, nästan en och en halv minut! Man borde nästan ta upp det med dom. Borde man inte få prisreducering om dom kör på slöa datorer!?
Det förklarar också varför min fina, optimerade kod inte märks...
Det tog 15600 millisekunder att snurra 10000000 varv.
eller 15,6 sek
Men varför är jscript snabbare?
JScript var slöare på Incordias server uppe i Härnösand. VBScript gick på typ 14 s och JScript lite mer än 20 s.
EY!! Dissa inte min hemstad va...
Hmm jag ändrade lite i koden
Ny kod:
dim stime,numloops, a, i, dtime
Skillnaden blev tämligen stor! Från 20 till 9 sekunder.
time to run for next loop 10000000 times= 9
OK,
testade på våran "sämsta" maskin, med ca 2500 besök om dagen, ett 20-tal siter konfade:
PII 450 mhz
384 mb ram
NT 4/IIS 4, sp6a
Resultat: 21 sekunder
På min maskin hemma:
PIII 866 mhz
512 mb
win2k server/IIS 5, sp2
Resultat: 6 sekunder
cya,
PatrikB
Nä nu blir jag ledsen... är vbscript så in i helsikes slöare än jscript... man kanske ska ta och lära sig det då.
[r] Men varför är det egentligen slöare?
Tja, vem vet. Sannolikt har de lyckats skriva scriptmotorn bättre, vilket skulle kunna bero på att JScript är något mognare än VBScript (fast å andra sidan har ju den vidriga BASUCK-familjen hängt med ett tag ). Personligen tycker jag att argument som mer konsekvent syntax, smartare uppbyggnad av existerande objekt och funktioner, kompaktare kod och så vidare är argument nog för att välja JScript. Det, och att det ser så mycket ballare ut
Konstigt egentligen att definera alla variabler först ger en så stor skillnad i prestanda.
Jag får 9 sekunder med original scriptet och 4s med alla variabler definerade i början.
En viss skillnad borde det vara men inte en så stor skillnad !!?
Något att komma ihåg, man bör alltså köra Option Explicit på alla ASP sidor och se till att deklarera ALLT.
Körde ochså testet som en ASP.NET sida med sunkiga resultat ( 7s ) men då är det ju förstås .NET fortfarande en beta.
sgtpepper, Om jag får våga mig på en gissning så skippar kompilern helt for loopen eftersom han lätt kan avgöra vad slutvärdet kommer bli utan att gå in i loppen.
[Redigerat av Zigma den 14 aug 2001]
Jag testade att köra samma sak fast i .NET och fick det fina rekordet på 120-130 ms... vilket tydligen blir ett rekord än så länge...
Korrigering, jag gjorde fel först, jag får ca 30ms på .NET
Körde med denna sida:
<HTML><TITLE>Test</TITLE><BODY>
<script language="C#" runat="server">
public void Page_Load(Object Src, EventArgs E)
{
int numloops = 10000000;
DateTime before, after;
int a, i;
before = DateTime.Now;
for( i = 0; i <= numloops; i++ ) a = i;
after = DateTime.Now;
Response.Write( "Time to run for next loop " + numloops + " times= " + ((after.Subtract(before)).Ticks/1E4) + " milliseconds" );
}
</script>
</BODY>
</HTML>
Kör förresten på en 1.1Ghz Athlon, 320MB, Windows XP Pro.
[Redigerat av Zigma den 14 aug 2001]
Man bör tänka på att när man kör ett script och terstar hastigheten, så sker en viss cashning, så att man får differens i tiderna.
Man bör därför starta en ny session.
Allra helst ska man köra ett stresstest från en annan maskin.
/T
sgtpepper, Om jag får våga mig på en gissning så skippar kompilern helt for loopen eftersom han lätt kan avgöra vad slutvärdet kommer bli utan att gå in i loppen.
Exakt, vilket gör att det enda detta test visar på är hur uruselt ASP/VBScript-motorn är på att optimera kod av denna typ jämfört med moderna tekniker.