24. september 2003 - 13:45Der er
2 kommentarer og 1 løsning
ASP.NET og Hukkomelsesstyring
Når mit ASP.NET site kører, så stiger hukommelsesforbruget. Især når serveren er belastet ser det ud til at forbruget stiger mere end aspnet processen kan nå at frigive.
Jeg har hørt at ASP net processen genstarter når den har forbrugt 60% af den tilgængelige hukommelse på maskinen. Er det sandt?
Hvad kan jeg gøre for at frigive noget af den hukommelse som aspnet processen akkumulerer?
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Så vidt jeg er orienteret er det IIS6 der er i stand til at genstarte servicen (og ikke ASP.NET). Husker du at Dispose de objekter der skal dette? (som fx. Bitmaps)
Synes godt om
Slettet bruger
01. august 2005 - 10:47#3
Svarene er mindre ligetil end som så. Det er rigtigt at Microsoft anbefaler max. 1.2gb memory eller 60% som den maksimale memory til 1 asp.net proces.
Det er også meningen at memory forbruget skal stige igennem en asp.net proces' levetid og det er så op til asp.net at kalde garbage collectoren når grænsen nåes.
Men asp.net's managed heap er mere kompliceret end som så. Hvis man troede at man ikke længere skal bekymre sig om memory styring fordi der er en garbage collector, så skal man tro om igen.
Her et lille udpluk af de ting man skal være klar over:
Asp.net's managed heap er inddelt i 3 levels, og alt efter hvor store og hvor længe objekterne lever vil de blive placeret i en level. Objekter placeret i den nederste level kan frigives meget let, mens objekter placeret i den øverste kategori bliver aldrig frigivet. Derfor er det vigtigt at man sørger for at frigive store objekter så hurtigt som muligt, for at de ikke ender i den øverste kategori.
Selve garbage collectoren kaldes i ny og næ, med mindre der ikke er clock cycles til at kalde den. ASP.net bryder ikke ind og tømmer memory hvis maskinen knokler løs. Derfor kan man opleve outofmemory problemer på websites som bruger 100% cpu. Dette er by-design iflg. Microsoft.
Strenge kan konkateneres med + (string myString = "brian" + " " + "caos";). Dette kan man godt gøre med små strenge, og op til ca. 5 af slagsen, men skal man konkatenere større strenge skal man bruge System.Text.StringBuilder.
Håber dette lille indlæg kan hjælpe andre med memory problemer.
Synes godt om
Ny brugerNybegynder
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.