webForumDet fria alternativet

Optimering

ASP

18 svar · 244 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1

I en intressant artikel på http://www.learnasp.com/learn/speedtablesall.asp står det att &-operatorn är dålig i prestandaavseende. Vad skall man använda istället? I Datormagazin stod ju att &-operatorn var det "absolut bästa sättet att skicka data till klienten ur prestandasynpunkt".

------------------
http://www.tavlingar.se

Medlem sedan dec. 19998 577 inlägg
#2

Det är inte själva operatorn som är prestandakrävande, utan sättet man använder den... när man sätter ihop stränga dynamiskt så tar det mer prestanda än om man skall skriva ut det direkt (i en loop).

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan juni 20001 257 inlägg
#3

Skall man använda Response.Flush() då?

------------------
http://www.tavlingar.se

Medlem sedan dec. 19998 577 inlägg
#4

Nä, det har inte med saken att göra, det du skall unvika är att lägga allt i en variabel som du sedan skriver ut efter loopen, stället för att direkt i loopen skriva ut resultat.

.flush använder du om du vill skicka text till klienten vid händelse av att du har .buffer = true, utan att behöva vänta till sidan är färdigprocesserad.

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan aug. 20003 575 inlägg
#5

Hmmm, de menar alltså att koden exeveras snabbare om man gör så här

For i = 1 to 20
Response.Write i&"<Br>"
Next

Än om man skriver

For i = 1 to 20
sOutput = sOutput&i&"<Br>"
Next
Response.Write sOutput

Trodde det var det andra alternativet som gällde men man lär så länge man lever. =)

------------------
"Brott kanske inte lönar sig, men det är kul"

Medlem sedan dec. 19998 577 inlägg
#6

Precis, vi hade ett liknande test för några veckor sedan: http://cgi.webforum.nu/wf/Forum11/HTML/004558.html

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan feb. 20012 412 inlägg
#7

Är det inte inline ASP som är boven i dramat? DVS när man växlar mellan HTML och ASP kod hela tiden. Är väl isåfall bättre att skriva ut det i ett block med response.write och använda '"& variabel &"' än skriva ut <%=RS("variabel")%> i varje tabellcell tex.

mvh jörgen

------------------
*** Var går gränsen mellan långa kortbyxor och korta långbyxor? ***

Medlem sedan dec. 19998 577 inlägg
#8

Har för mig att vi kom fram till att det inte var så stor skillnad med inline ASP.

Det absolut snabbaste är att köra Response.Write i loopen, sedan kommer att skriva blandat ASP och HTML, absolut segast är att lägga allt i en variabel som du sedan skriver ut längre ned på sidan...

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan jan. 2001510 inlägg
#9

Det är väl ganska självklart eftersom du då får kopiera allt data du hämtat till ytterligare ett ställe. :)

/JANspeed (besservisser) :)

Medlem sedan dec. 19998 577 inlägg
#10

Jo, självklart är att det tar kraft, frågan var/blev hur det var i korrelation till att använda inline ASP.

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan aug. 20003 575 inlägg
#11

Är detta det snabbaste sättet annars?

 sOutput = "Kod fortfarande kod"
lite loopar och sådant
sOutput = sOutput&"en massa mer kod"
lite mer loopar

Response.Write sOutput

eller är detta snabbare:

Response.Write "Lite text å sådant"
lite loopar
Response.Write "lite text igen"
lite kod

??

------------------
"Brott kanske inte lönar sig, men det är kul"

Medlem sedan dec. 19998 577 inlägg
#12

Det senare är snabbast. Kanske inte alltid det mest praktiska dock.

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan aug. 20003 575 inlägg
#13

Om man gör så här???

Response.Write "en massa text"&_
"en massa mer text"

eller om man gör såhär

Response.Write "en massa text"
Response.Write "en massa mer text"

eller Response.Write "en massa text en massa mer text"

i vilken ordning kommer dessa då?

------------------
"Brott kanske inte lönar sig, men det är kul"

Medlem sedan dec. 19998 577 inlägg
#14

Borde väl bli 3, 1 och 2... :)

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan juni 200032 967 inlägg
#15

enig.

f.ö. tycker jag det är trevligt att folk bryr sig om att det funkar bra, inte bara att det funkar.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan mars 20002 836 inlägg
#16

OT:
@nders ... vad menar du med det? ...

cya,
PatrikB .... efter .... en dag på stranden.

------------------
*Det tar sig sa han som hade eld i håret*

Medlem sedan juni 200032 967 inlägg
#17

det är ofta man råkar på folk som bara vill att det ska fungera. om det görs bra eller dåligt, rätt eller fel, verkar kvitta.

därför är det roligt med folk som vill göra på bästa sätt.

patrik, vill du att man ska göra allt så dåligt som möjligt? ;)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan aug. 20003 575 inlägg
#18

Tackar för informationen...
får ändra lite på mitt programmerings sätt nu då =)

Håller med @nders

------------------
"Brott kanske inte lönar sig, men det är kul"

Medlem sedan mars 20002 836 inlägg
#19

He, he @nders ... självklart ska vi göra det så bra som möjligt + lite till :p .

Hade nog solsting när jag läste inläggen.

Just nu har vi 30 grader i skuggan och man flyyyyyter bort.

Nä, nu är det "beachen" som gäller

cya,
PatrikB

------------------
*Det tar sig sa han som hade eld i håret*

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)