04. juni 2001 - 22:07Der er
23 kommentarer og 2 løsninger
Optimeret kode
Hej - jeg har et par spørgsmål:
1. Har det nogen betydning (for afviklingen af ASP - belastning af server osv.) om man enten skriver hele sin side i ASP (altså med response.write osv) eller om man skifter mellem ren HTML og ASP
2. Har det ligeledes betydning for afviklingen om man bruger variabler og angiver det i HTML\'en som <%=Noget%> i stedet for fx \" $ RS(\"noget\") $ \" osv.
Det jeg altså gerne vil vide er - har det nogen betydning for afviklingen af siden - tager det længere tid/belaster det serveren mere på den ene måde end den anden?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skal prøve at starte og stoppe ASP koden mindst muligt. Det hurtigste er selfølgelig ren HTML, men i f.eks. et LOOP kan det betale sig at bruge ren ASP:
<tabel><tr> <% for i=0 to 10 response.write(\"<td>\" & i & \"</td>\") next %> </tr></table>
er hurtigere end:
<tabel><tr> <% for i=0 to 10 %> <td><%=i%> </td> <% next %> </tr></table>
Synes godt om
Slettet bruger
04. juni 2001 - 22:19#3
Aha - jeg bruger nemlig ofte dreamweaver til at strukturere siden (lave tables osv.) i stedet for at skulle kode den kedelige kode. Og så sætter jeg så efterfølgende ASP\'en ind hvor det er nødvendigt i HTML\'en. Er det en dum ide? Er der meget at spare ved at skrive alt i ASP (altså igen med response.write) - og hvor stor en forskel snakker vi?
Er det noget der har væsentligt betydning fx hvis sitet får mange besøgende eller hvad?
det er ikke decideret måleligt - altså at sige at noget er x sek hurtigere end det andet... men koden her på eksperten kunne fx godt trænge til en gang oprydning og her vil det have meget at sige pga de mange besøgende...
ud over det link, der er anført, har I så noget som helst dokumentation for jeres påstande, eller er det bare sådan noget i tror? Ikke fordi jeg ved det, men I kan bare ikke gætte, vel?
Jeg har læst det flere steder på Internettet. Kunne desværre ikke finde et eksemple, men har lavet et hvor der vises tydelig forskel. Det er ca. 3 gange hurtigere.
Ændre selv if sætning for at køre det andet eksemple.
<html>
<script language=\"JScript\" runat=\"Server\"> timerBegin = new Date(); function myTimer() { tmpTime = new Date(); Response.Write(tmpTime.getTime() - timerBegin.getTime()) } </script>
<%
if (false)then for i=0 to 1000 response.write(i & \",\" & i & \",\" & i ) next else for i=0 to 1000 %> <%=i%>,<%=i%>,<%=i%><% next end if
Response.Write \"<p>Det tog <b>\" Call myTimer() Response.Write \" ms.</b> at afvikle dette script.</p>\"
Ja, men med mine målinger tager dette kun ca. 10 % mere. Så hvad er det egentlig vi måler? Er det \"hoppe ud og ind af ASP\", eller er det strengkonkatenering, eller er det antal kald til response.write? Eller hvad? Svaret er ikke helt så klart....:)
if (false)then for i=0 to 1000 response.write(i & \",\" & i & \",\" & i ) next else for i=0 to 1000 s=\"\" %><% s=s&i%><% s=s&\".\"&i%><% s=s&\".\"&i%><% response.write(s) next end if
og endelig med <% response.buffer=true %> tager begge dine versioner, stigc, ca. det samme og 3-9 gange hurtigere end uden... Som Microsoft jo i øvrigt anbefaler :)
Så vidt jeg lige så, havde Microsoft ingen anbefaling mht at \"gå ind og ud af ASP\", men mange andre anbefalinger. Det betyder næppe ret meget hvor mange <%...%>-ere der er, i forhold til alt det andet man kan optimere på.
er det optimalt for en server at køre med response.buffer=true? Den får hurtigere lavet siden færdig og smidt i en buffer. Men det bruger vel også den tilsvarende midre energi ved buffer slået fra... Er der nogen der ved om det kan betale sig?
Den skal umiddelbart bruge mere RAM, men i kortere tid, inden den kan smide det væk igen. For almindeligt størrelser af sider mener jeg det klart kan betale sig, men for de store sider, der f.eks. af og til findes her på eksperten.dk kan man godt forestille sig RAM-forbruget blive for stort... Men ved man det, kan man vel sige flush (eller hvad det nu hedder i ASP) en gang i mellem.
Det er lidt interessant, det her, men jeg kender desværre ikke det \"gyldne svar\" :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.