Avatar billede mulemule Nybegynder
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
Avatar billede mulemule Nybegynder
14. januar 2008 - 01:05 #1
Det er noget som forgår på en server i en ASP.NET applikation.
Avatar billede bvli Praktikant
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 :)
Avatar billede mulemule Nybegynder
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
Avatar billede mulemule Nybegynder
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
Avatar billede mulemule Nybegynder
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
Avatar billede arne_v Ekspert
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.
Avatar billede mulemule Nybegynder
15. januar 2008 - 02:31 #7
Tak for rådet, men tror du det nogen skade kan gøre at skrive
content = null.
Avatar billede arne_v Ekspert
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 !
Avatar billede arne_v Ekspert
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 !
Avatar billede arne_v Ekspert
25. februar 2008 - 04:08 #10
Tid at få afsluttet her ?
Avatar billede mulemule Nybegynder
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
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