webForumDet fria alternativet

Optimering

18 svar · 242 visningar · startad av kristoffer

kristofferMedlem sedan juni 20001 257 inlägg
#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

VideMedlem 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

kristofferMedlem sedan juni 20001 257 inlägg
#3

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

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

VideMedlem 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

NickemannenMedlem 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"

VideMedlem 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

jorgenMedlem 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? ***

VideMedlem 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

JanspeedMedlem 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) :)

VideMedlem 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

NickemannenMedlem 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"

VideMedlem 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

NickemannenMedlem 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"

VideMedlem sedan dec. 19998 577 inlägg
#14

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

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

webeye.nu

@ndersMedlem sedan juni 200032 969 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>

PatrikBMedlem 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*

@ndersMedlem sedan juni 200032 969 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>

NickemannenMedlem 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"

PatrikBMedlem 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*

127 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)