Avatar billede nielsbrinch Nybegynder
06. juli 2005 - 22:06 Der er 12 kommentarer og
1 løsning

Koster det hukommelse at vise en fil gennem url rewriting?

Jeg bruger url-rewriting til at vise filer med.

Min fil ligger her:
billeder/thumbnails/100.jpg

Men med url rewriting sørger jeg for at man kan tilgå filen sådan:
thumbnail_100.aspx

Jeg ved, at når man viser filer gennem en aspx-fil med Response.WriteFile-funktionen, så bliver filen lagt midlertidigt ind i hukommelsen. Det giver problemer med serveren hvis der er mange store filer der bliver hentet samtidig.

Mit spørgsmål er, om den metode jeg skitserer herover med url rewriting, medfører at filen bliver lagt midlertidigt ind i hukommelsen.

Nogen der ved det, eller evt. har idéer til hvordan jeg kan finde ud af det?
Avatar billede arne_v Ekspert
06. juli 2005 - 22:10 #1
så du spørger om hvorvidt IIS når den server static filer læser alt fra disk
til memory inden den sender til browser eller den læser/sender chunks af et eller
andet antal KB ?
Avatar billede nielsbrinch Nybegynder
06. juli 2005 - 22:27 #2
Nej, det ved jeg godt den ikke gør som udgangspunkt. Men jeg er usikker på om den gør det som udgangspunkt når man kører gennem ISAPI-filteret. Og det gør man jo når det er en aspx-fil. Ellers ville jeg heller ikke kunne url rewrite.

Det er fordi jeg har læst denne artikel om file streaming og memory-forbrug, hvor de var nødt til at opfinde deres eget ISAPI-filter.

http://www.dotnetjunkies.com/Article/E9BE4431-3561-4A64-88C8-A49B2E50CBFA.dcik
Avatar billede arne_v Ekspert
06. juli 2005 - 22:45 #3
interessant artikel

ISAPI er tilsyneladende ikke helt død

men jeg tror at du skal forklare lidt om den URL rewriting - jeg har aldrig
leget med det i IIS, men i mange andre webservere så mapper man fra nogle
URL'er som browseren ser til nogle interne URL'er - og requesten må jo nødvendigvis
blive processet som den interne URL - så jeg mangler vist en brik i puslespillet
Avatar billede nielsbrinch Nybegynder
06. juli 2005 - 22:52 #4
I min asp.net applikation fanger jeg et request i Global.asax og tjekker Request.Path. Afhængigt af hvad Request.Path er, udfører jeg metoden "Context.RewritePath(internalPath);". Hvad den metode helt nøjagtigt gør inde bagved, ved jeg desværre ikke. Det er nok del af spørgsmålet.
Avatar billede nielsbrinch Nybegynder
06. juli 2005 - 22:54 #5
Det smarte er thumbnail_100.aspx behandles af .NET ISAPI-filteret, selvom filen slet ikke findes. Derfor kan jeg behandle requestet i global.asax, selvom requestet ikke kalder en gyldig fil.
Avatar billede arne_v Ekspert
06. juli 2005 - 23:00 #6
jeg har ingen anelse så

kan du ikke lave en test

en 120 MB fil

1 samtidig request, 10 samtidige requests, 100 samtidige requests
Avatar billede nielsbrinch Nybegynder
06. juli 2005 - 23:28 #7
Resultat af test: Page File Usage steg fra 700 MB til 1,3 GB ved hentning af den samme 100MB-fil i tre forskellige browser-vinduer.

Men jeg er ikke sikker på om jeg kan stole på testen. Det er nok ikke godt at lave en test hvor klient og server er samme maskine. Så ved jeg jo ikke om memory-forbruget er serverens eller klientens skyld.
Avatar billede arne_v Ekspert
06. juli 2005 - 23:31 #8
måske, men er det ikke nemmere at holde clients memory forbrug nede ?

(specielt hvsi du ikke bruger WebClient, men går ned på Socket niveau)
Avatar billede nielsbrinch Nybegynder
06. juli 2005 - 23:37 #9
Hvis jeg laver et socket-kald og lader være med at hente filen, så kan det være det er derfor, hvis der ikke bruges memory. Hvis jeg henter filen, kan det igen være klientens skyld at memory-forbrug stiger.

Jeg tror den eneste pålidelige test kan opnås med adskilt klient og server hvor serverens ram-forbrug kan overvåges. Det må jeg lige se om jeg kan fikse. Tak for coachingen.
Avatar billede arne_v Ekspert
06. juli 2005 - 23:41 #10
hvis du læser fra socket og bare smider data væk, så burde der ikke være nogen buffer
i client

men der er en anden fordel ved at teste med en remote client - det giver længere
download tider, hvilket må gøre det nemmere at undersøge problemet
Avatar billede nielsbrinch Nybegynder
01. april 2006 - 18:40 #11
Tak for coachingen. Det er tid til at lukke spørgsmålet.
Avatar billede arne_v Ekspert
02. april 2006 - 01:14 #12
var det en opfordring til at ligge et svar ?
Avatar billede nielsbrinch Nybegynder
03. april 2006 - 08:54 #13
Ja tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester