webForumDet fria alternativet

Dim?

12 svar · 233 visningar · startad av Goldfish

GoldfishMedlem sedan jan. 20005 inlägg
#1

Alltså, är det verkligen nödvändigt att definera variabler med dim? Jag tycker att resultatet verkar bli desamma varesig man definerar eller inte?

I Webstudios guide defineras det hela tiden...

------------------
/Goldfish

VideMedlem sedan dec. 19998 577 inlägg
#2

Med Option Explicit påslaget så kommer du att få en avsevärd snabbhetsförbättring när du dimmar dina variabler... och det är en god sed att dimma.... du kan när som helst kolla längst upp på sidan och kolla vilka variabler som är använda...

Dim fungerar på det viset att den reserverar en bit minne för varje variabel, så att tolken inte behöver gå igenom koden och göra detta själv... det är detta som du tjänar tid på...

Mvh, Vide

------------------
Kom hem till mig...

RobbanMedlem sedan dec. 19992 555 inlägg
#3

Framför allt (IMO) skyddar det programmeraren.

Ett exempel. Om man i början av ett program sätter en variabel pillutta = 10 och senare försöker med:

Response.Write pilutta

Kör man utan Option Explicit så sväljer skripttolken detta utan att klaga, och man har ett roligt arbete framför sig för att försöka luska ut vad det är som gått snett. Kör man med Option Explicit så får man ett felmeddelande som direkt talar om vad man har gjort för fel.

------------------
Robban < robban@lipogram.com >

aMedlem sedan maj 2000755 inlägg
#4

Vad är det egentligen som gör att det går att åstadkomma en prestandaökning genom att använda Option Explicit?

emissionMedlem sedan dec. 19996 721 inlägg
fredrikMedlem sedan dec. 19991 072 inlägg
#6

I princip är det så om du inte använder option explicit så måste systemet varje gång den träffar på en variabel kontrollera om variablen har blivit skapad eller inte och det är detta som slöar ner.

------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/

aMedlem sedan maj 2000755 inlägg
#7

aha, toppen, men som sagt den riktigt stora vinsten är ju att man utesluter ett antal onödiga slarvfel om man tvingar sig att deklarara variablerna

PatrikBMedlem sedan mars 20002 836 inlägg
#8

Hello,

en annan sak man inte ska glömma bort är att man ska dim'a variablerna inne i en sub, om man har en sådan. Det ökar oxå prestandan än om du skulle dim'a variabeln utanför sub'en

//PatrikB

------------------
=================================
** ZWGdesign **
=================================

VideMedlem sedan dec. 19998 577 inlägg
#9

PatrikB, hur kan det snabba upp att lägga dimmarna i en sub?

------------------
Kom hem till mig...

PatrikBMedlem sedan mars 20002 836 inlägg
#10

Hello igen,

läste det ngn stans .... tror att det var artikeln om hur man "snabbar" upp sina applikationer i ASP på www.asptoday.com
sök på: Enhancing Performance in ASP

cya,
PatrikB

------------------
=================================
** ZWGdesign **
=================================

[Redigerat av PatrikB den 20 sep 2000]

VideMedlem sedan dec. 19998 577 inlägg
#11

Hmmm... hittade artikeln och blev lite förvånad... :)

Men om man ropar på en sub med en del deklarationer i två gånger, blir det inte lite bakvänt då? Onödig kod...

Vad jag så ur artikeln var att man skulle flytta initieringen och deklareringen av variablerna man skulle använda in i subben...

Mvh, Vide

------------------
Kom hem till mig...

PatrikBMedlem sedan mars 20002 836 inlägg
#12

Antar att det annars ligger och tar upp extra minne som ej behövs förrän man kör subben. Kanske är det det som gör att det snabbas upp om man har initieringen och dim'en inne i subben, dvs, "extra minne" ;) frigörs när subben e inaktiv.

//PatrikB

------------------
=================================
** ZWGdesign **
=================================

ToonsterMedlem sedan feb. 20001 590 inlägg
#13

Tror det har med användningen av det dynamsika minnet. Och var i minnet variablerna sparas.
Säg att en subrutin efter realtidskompileringen startar på en viss adress hamnar de deklarerade variablerna inom samma segment.

Om man deklarerar variablerna tidigare, så hamnar de kanske inte alls i samma segment, och kräver kanske en 2 cyklers instruktion för att hämtas.
(bara spånar lite...)

Eftersom det rör sig om realtidskompilering, tror jag att ALL VB script ligger i DS segmentet.

Kanske någon guru i kompilatorteknik kan ge några svar?

/T

------------------
public static void main()

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