14. januar 2008 - 01:04
Der er
11 kommentarer
Ram blir fyldt op, selvom jeg null´er stor byte array.
Hej I en klasse har jeg en private byte[] content; Som jeg langsomt fylder op med optil 40 mb data. På et tidspunkt er procesen overstået og jeg gemmer hele indholdet at byte[] content som en fil. Lige efter skriver jeg content = null; Men rammen er stadig fyldt op af de 40 mb. Jeg har et ønske om at lige efter at jeg har skrevet content = null, skal ramen blive frigivet igen. (Det er muligt at dette sker hen ad tiden det har jeg ikke testet) Burde ram blive frigivet igen, kan det være en fejl i min kode ? Skal jeg kalde en oprydnings metode i .NET ? Det er w3wp.exe NETWORK SERVICE jeg kigger på i task manager. Mvh og tak hvis nogen kan hjælpe Jeg kigger på ram forbruget
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
14. januar 2008 - 01:05
#1
Det er noget som forgår på en server i en ASP.NET applikation.
14. januar 2008 - 01:07
#2
Hey.. Nøh.. Det må gerne ligge der. Når runtime'n finder ud af, at den skal bruge noget memory, så sætter den garbage-collectoren i gang med at fixe det for dig. /B :)
14. januar 2008 - 01:17
#3
Hey. Tak for svar. Kan jeg tvinge .NET til at køre garbage collectoren. Det er ikke sikkert at jeg så vil bruge det i produktion men jeg vil gerne lige teste hvad der sker. Mvh
14. januar 2008 - 01:21
#4
Fandt lige selv GC.Collect(); på tre sek. lejer lige med det, undskyld at jeg er så hjælpeløs. Mvh
14. januar 2008 - 01:36
#5
Tak, det virker med GC.Collect . Og jeg kan også se at der bliver ryddet op af selv hvis jeg overbelaster kunstigt. Lig svar for point. Tak
14. januar 2008 - 01:47
#6
Bemærk at: content = null; er dårlig kode stil i langt de fleste tilfælde - bare lad content gå ud af scope. At kalde: GC.Collect(); vil normalt forringe performance - .NET kører selv GC hvis der er brug for det.
15. januar 2008 - 02:31
#7
Tak for rådet, men tror du det nogen skade kan gøre at skrive content = null.
15. januar 2008 - 02:47
#8
Nej. Der sker heller ikke noget ved at du indsætter 3 empty statements: ; ; ; i din kode. Men det ser ikke kønt ud !
15. januar 2008 - 02:50
#9
Det er en COM'isme som bl.a. en del ASP programmører har, men den hører ikke hjemme i .NET !
25. februar 2008 - 04:08
#10
Tid at få afsluttet her ?
12. marts 2008 - 20:03
#11
Jamen så lader jeg være med at skrive content = null og heller ikke ; ; ; Tak for det råd også. Mvh
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.