trexterMedlem sedan mars 20021 889 inlägg Hur är det egentligen?
De flesta säger att man tjänar prestanda på att dimensionera
alla variabler medans andra säger att det endast gäller för
funktioner och subar, där asp:n slipper att leta efter värden
utanför.
Är det någon som vet vad som egentligen är rätt och kan bevisa det också?
:)
LarsGMedlem sedan dec. 200012 464 inlägg Det hjälper prestandamässigt även för variabler med option explicit. Det kan du ju bevisa själv genom att köra testprogram.
icaaqMedlem sedan okt. 20005 273 inlägg Detta har disskuterats ett flertal gånger och flertalet av dessa har resulterat i samma sak:
Använd Option Expicit
Du ökar din prestanda och gör koden mer förstålig om du samtidigt kommenterar dina variabler.
Bevis?? nej det kan jag inte ge dig utan jag kan endast be dig söka på ämnet så får du fler trådar som säger likadant.
mvh icaaq
trexterMedlem sedan mars 20021 889 inlägg jag råkade skriva fel i mitt inlägg. Det jag menade var inte dimensionering av funktioner utan dimensionering av variabler I funktioner. Viss skillnad...
Men jag hade kanske fått samma svar i alla fall?
Jag ska testa så fort jag får igång servern igen som nyss kraschade....
:)
nikoMedlem sedan juni 20022 599 inlägg Och jag tror att det inte inte finns nån prestandavinst i att använda Option Expicit eller explicit variabeldeklaration på sidnivå. Men jag kan ha fel eftersom jag aldrig kollat.
Bevisbördan ligger för övrigt alltid hos dom som påstår något.
De måste:
1. Förklara genom vilken mekanism exekveringen skulle gå fortare.
2. Ange en tillförlitlig metod som man kan mäta denna skillnad med.
PatrikBMedlem sedan mars 20002 836 inlägg Ok, se variabel-lagringen som en hylla med en massa fack. Ett fack för varje variabel.
"Hyllan" kan se ut så här som exempel:
+----+----+----+
|1:01|1:02|1:03|
+----+----+----+
|2:01|2:02|2:03|
+----+----+----+
|3:01|3:02|3:03|
+----+----+----+
Om du inte dimmar dina variabler så vet inte "script-kompileraren" om vart någonstans i denna hylla som variabeln finns lagrad.
Dvs, den får börja att leta i fack 1:01, 1:02 etc tills den hittar variabeln.
Om du nu dimmar dina variabler så kommer "script-kompileraren" att veta i vilket fack som din variabel ligger lagrad: tex i fack 2:03
Den går direkt till rad 2 fack 3.
Vilket tror du går snabbast?
cya,
PatrikB
CheezesMedlem sedan nov. 2002501 inlägg
PatrikB skrev:
Ok, se variabel-lagringen som en hylla med en massa fack. Ett fack för varje variabel.
Är det exakt upplägg, i VB oxå? :l
//Cheezes
nikoMedlem sedan juni 20022 599 inlägg
PatrikB skrev:
Om du inte dimmar dina variabler så vet inte "script-kompileraren" om vart någonstans i denna hylla som variabeln finns lagrad.
Fast det resonemanget känns ganska svagt. Vad är det som säger att inte "hyllan" kan skapas dynamiskt under run-time? Det borde tvärtom vara mer optimalt om "hyllan" (look-up tabellen) skapades succesivt: Antag att en variabel bara finns i en if-sats som aldrig utförs. I så fall behöver variabeln aldrig läggas in i tabellen. Om man däremot "dimmar" variabeln överst så läggs den in helt i onödan, eller hur?
Men som sagt: Jag säger inte att "dimmade" variabler inte är snabbare. Det är bara det att jag inte kan förstå varför dom skulle vara det.
Och återigen: Bevisbördan ligger på dom som påstår nåt. Om deklarerade sidvariabler är snabbare så borde det vara lätt att hitta:
1. En trovärdig källa som bekräftar det.
2. Ett experiment som vem som helst kan upprepa.
nikoMedlem sedan juni 20022 599 inlägg Här är för övrigt ett experiment enligt punkt 2 som klart och tydligt visar att jag hade fel angående "dimmningar".
<%
dim int1
iStart = Timer()
for i = 0 to 100000
int1 = 1
next
response.write Timer() - iStart & "<p>"
iStart = Timer()
for i = 0 to 100000
int2 = 1
next
response.write Timer() - iStart
%>
Aargh! Nu går jag och lägger mig .. :l
(Option Explicit, däremot, verkar inte ha nån hastighetsbetydelse.)
PatrikBMedlem sedan mars 20002 836 inlägg he, he ....
Option Explicit gör inte själva "hastighetsbetydelsen", det är själva dimmningen.
MEN! Option Explicit TVINGAR dig till att dimma alla variabler. Om du "glömmer" att dimma en variabel, om du dimmar en variabel flera gånger så "talar" Option Explicit om det för dig genom ett fiiiiiint felmeddelande :e
Så, dimmning gör hastighetsbetydelsen och option expicit tvingar dig till dimmning ;)
cya,
PatrikB
PatrikB skrev:
he, he ....
Option Explicit gör inte själva "hastighetsbetydelsen", det är själva dimmningen.
MEN! Option Explicit TVINGAR dig till att dimma alla variabler. Om du "glömmer" att dimma en variabel, om du dimmar en variabel flera gånger så "talar" Option Explicit om det för dig genom ett fiiiiiint felmeddelande :e
Så, dimmning gör hastighetsbetydelsen och option expicit tvingar dig till dimmning ;)
cya,
PatrikB
Precis, jag tror vi kom fram till det för 1 eller 2 år sedan här genom tester. Om att fördeklarering snabbar upp allt en hel del.
PatrikBMedlem sedan mars 20002 836 inlägg jepp, det gjorde vi .... men niko tvivlade fortfarande :e ;)
cya,
/PatrikB