webForumDet fria alternativet

Tjänar på Option Explicit?

ASP

12 svar · 450 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Frågan#1

Tjänar man mycket på att använda Option Explicit på sina sidor?

<%@ LANGUAGE="VBSCRIPT" %>
<%
Option Explicit
Response.Expires=-1
Response.Buffer = True
%>

När man använder Option Explicit måste man då "dimma" alla sina RecSet också alltså inte bara variablarna? Och tjänar namn något på att använda Set variabelNamn = Nothing när man användt klart variablen?

Medlem sedan nov. 20031 018 inlägg
#2

Har ett problem när jag använder Option Explicit Jag måste ju sätta alla variablar men hur gör jag när jag ska använda en funktion som kollar texten? Kanske ska nämna att jag inkluderar filen som gör kollen av texten.


function kontrollText(Text)

Sen för att skriva ut texten:

kontrollText(Rs("fraga"))

Felmeddelandet när jag inte sätter variablen:
Microsoft VBScript runtime error '800a01f4'

Variable is undefined: 'kotrollText'

Med Dim:
Microsoft VBScript runtime error '800a000d'

Type mismatch

Medlem sedan juni 200032 967 inlägg
#3

Det heter ju kontrollText, inte kotrollText. Där har du det bästa med Option Explicit, du ser direkt när du skrivit fel.

Medlem sedan nov. 20031 018 inlägg
#4

Ok det löste det men hur är det med prestandan?

Medlem sedan nov. 20017 144 inlägg
#5

Dim i
i=1

ger bättre prestanda än
i=1

Medlem sedan feb. 200112 078 inlägg
#6

Det finns vissa argument för att Option Explicit ökar prestanda, när det handlar om stora/intensiva exekveringar, men jag vågar inte svara på hur mycket eller hur.

Medlem sedan aug. 20039 340 inlägg
#7

Option Explicit ändrar i sig inte prestandan nämnvärt. Däremot är man ju tvungen att deklarera alla variabler, vilket kan ge en viss prestandaökning. (Antagligen ganska liten dock, eftersom VB är ett högnivåstråk)

Medlem sedan feb. 200112 078 inlägg
#8

Nej, självklart ökar inte själva metoden Option Explicit prestanda, men eftersom den tvingar fram deklarering, som du säger, så blir det ju indirekt så.

Missförstånd. :)

Medlem sedan mars 2001148 inlägg
#9

Det är alltså bra att köra Option E när man utvecklar, för att det skall bli så bra som möjligt, men inte när sidan skall släppas? För de e väl lika bra om användarna inte kan se felmeddelandena.

Medlem sedan maj 200010 687 inlägg
#10

Felen som kommer när man kör med Option Explicit är endast när variabler är odeklarerade. Och man släpper sällan en sida utan att deklarera en variabel.
Och gör man det så är det bättre att ett fel kommer direkt än att man får mystiska fel som är svåra att hitta.

Jag har hört att användande av Option Explicit faktiskt ska ge bättre prestanda eftersom att VBScript-motorn inte behöver leta efter odeklarerade variabler utan förutsätter att alla är deklarerade. Men inget jag fått från någon tillförlitlig källa. :)

Jag anser i alla fall att man alltid bör använda sig av Option Explicit. Finns inga nackdelar som jag ser det! :)

Medlem sedan dec. 20025 871 inlägg
#11

Erik Juhlin skrev:

Jag har hört att användande av Option Explicit faktiskt ska ge bättre prestanda eftersom att VBScript-motorn inte behöver leta efter odeklarerade variabler utan förutsätter att alla är deklarerade. Men inget jag fått från någon tillförlitlig källa.

Jag har även hört att VBScript-motorn inte behöver reservera platsminne för odeklarerade variabler, utan endast för deklarerade, när man använder Option Explicit.

Medlem sedan apr. 20003 174 inlägg
#12

4guysfromrolla skrev:

When Option Explicit is used, all variables must be explicitly declared before being used. This greatly enhances readability and prevents an entire class of silly typographical errors and bugs that can occur when Option Explicit is not used. Not only does Option Explicit lead to more readable and maintainable code, Option Explicit also increases performance by up to 10%! There is no reason why you shouldn't use Option Explicit on every ASP page!

Artikel 1
Artikel 2

Medlem sedan apr. 20003 174 inlägg
#13

Tillägg till mitt inlägg ovan: :)

Microsoft skrev:

Perhaps more important, it turns out that declared variables are faster than undeclared variables. Under the covers, the scripting run time references undeclared variables by name, every time they are used. Declared variables, on the other hand, are assigned an ordinal, either at compile time or run time. Subsequently, declared variables are referenced by this ordinal. Since Option Explicit forces variable declaration, it insures that all variables are declared and thus will be accessed quickly.

Källa
 

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