webForumDet fria alternativet

Lagra i variabler eller inte?

ASP

8 svar · 200 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1
  1. Är det någon prestandaskillnad mellan

    Response.Write(RecSet("id"))
    

    och

    id = RecSet("id")
    Response.Write(id)
    
  2. Är det någon prestandaskillnad mellan att deklarera variabler och att inte göra det?

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

[Redigerat av kristoffer den 23 jun 2001]

Medlem sedan maj 20011 312 inlägg
#2

Det borde vara det...jag undrade faktiskt över samma fråga idag...

Men det beror lite på användningen av variabeln tror jag...

Medlem sedan juni 20001 257 inlägg
#3

Jag sitter här och väntar på att @nders skall svara :e

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

Medlem sedan juni 200032 967 inlägg
#4

you called, sir? :e

alternativ 1 är att föredra, om det bara är en enkel utskrift. givetvis alternativ 2 om du ska använda värdet senare i koden. jag skulle dock gissa att prestandaskillnaden inte är så stor.

vad gäller din andra fråga skulle jag vilja svara ja, men eftersom jag inte kan motivera det på ett vettigt sätt så gör jag inte det. kanske vi ska skrika på de andra proffsen?

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

[Redigerat av @nders den 23 jun 2001]

Medlem sedan juni 20001 257 inlägg
#5

Menar du att det isf blir en prestandaökning när man deklarerar variabler?

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

Medlem sedan maj 200010 687 inlägg
#6

Det blir ju bättre prestanda (snabbare alltså) om man skriver med Option Explicit och deklarerar variablerna.
Då behöver serverprylen inte leta efter odeklarerade variabler.

Har hört att det blir en prestandaökning med 100%. :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

[Redigerat av Erik Juhlin den 23 jun 2001]

Medlem sedan mars 20002 836 inlägg
#7

Svar på fråga 2:
Jepp, det är skillnad i prestanda i att Dimma eller inte dimma variabler.

Lite enkelt förklarat:

När man dimar en variabel så sätts det en referens vart någonstans variabeln är sparad i minnet och plats görs för variabeln i minnet.

Om variabeln inte är dimmad så kommer det att först letas efter en plats för variabeln i minnet, dvs den kan hamna var som helst i minnesutrymmet.
När den sedan anropas så kommer hela minnet att letas igenom efter variabeln.

Detsamma gäller Subbar och Funktioner.
Variabler som används inne i subbar och funktioner bör dimmas inne i subben eller funktionen då dessa kommer att sparas i närliggande minnes fack.
Om inte det görs så kan alla variabler, subben eller funktionen hamna i olika fack i minnet och det drar som sagt ned prestandan att leta igenom alla fack efter de variabler, subbar eller funktioner som efterfrågas.

man kan se det så här för de variabler som är dimmade ordentligt:
I fack1 så sparas funktionen test()
Det sparas oxå en referens om vart ngnstans man kan hitta variablerna som finns inne funktionen oxå.
I fack2 - fack4 sparas de variabler som används inne i funktionen.
När själva funktionen körs så vet den att vart den ska hämta sina variabler ngnstans i minnet, i fack2 - fack4.

Om nu inte dessa variabler hade varit dimmade inne i funktionen så kanske de hade hamnat i fack332, fack1024, fack1025, fast utan ngn reference om VART ngnstans dessa kan hamna. Dvs, hela minnet måste gås igenom för varje anrop till var och en av variablerna med resultatet att det kommer att gå långsammare att hitta dessa.

Nu e ju jag ingen expert på detta med minneshantering, finns säkert ngn annan här som är bra mycket bättre på detta, men ngt liknande handlar det om

cya,
PatrikB

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

[Redigerat av PatrikB den 23 jun 2001]

[Redigerat av PatrikB den 23 jun 2001]

Medlem sedan mars 20002 836 inlägg
#8

en annan sak som oxå ökar prestandan, dvs gör så att sidan processas fortare på servern, är att sätta på buffringen.

REsponse.Buffer = TRUE

Den är default i IIS5 men INTE i IIS4.
Så ni som kör IIS4 testa att sätta på Buffringen och ni kan se att sidan processas bra mycket fortare, speciellt om ni använder er av tex FileSystemObject.

cya,
PatrikB

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

Medlem sedan juni 200032 967 inlägg
#9

Menar du att det isf blir en prestandaökning när man deklarerar variabler?

ja, det var det jag menade. som tur är har vi PatrikB som kan förklara också. :)

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

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