Minnesläcka med FileReader i Chrome

Permalänk
Medlem

Minnesläcka med FileReader i Chrome

Hej swecare.

Jag sitter just nu med ett projekt där jag behöver läsa in stora filer i webbläsaren. Problemet är att garbage collectorn aldrig rensar datan när jag är klar.

I Chrome så får jag en minnesläcka tills att jag går till en ny flik eller laddar om sidan. I Firefox så frias minnet efter några sekunder.
Är detta en bugg i Chrome eller har jag gjort något fel?

Jag har gjort en fiddle för att visa problemet:
fiddle

Tack på förhand.

Permalänk
Medlem

Hur vet du att du får en minnesläcka?

Den Garbage Collector som är en del av V8 (som är Chromes JavaScript-motor) körs automatiskt, så du kan inte räkna med att minnesanvändningen går ner efter x sekunder även om det händer i SpiderMonkey (JavaScript-motorn i Firefox).

När jag testade att öppna lite små och stora filer i Chrome så steg visserligen minnesanvändningen, men det var inte någon nämnvärd ökning. Testade dock i Chrome Beta, så det kanske faktiskt är ett problem som lösts.

Permalänk
Medlem
Skrivet av ToJa92:

Hur vet du att du får en minnesläcka?

Den Garbage Collector som är en del av V8 (som är Chromes JavaScript-motor) körs automatiskt, så du kan inte räkna med att minnesanvändningen går ner efter x sekunder även om det händer i SpiderMonkey (JavaScript-motorn i Firefox).

När jag testade att öppna lite små och stora filer i Chrome så steg visserligen minnesanvändningen, men det var inte någon nämnvärd ökning. Testade dock i Chrome Beta, så det kanske faktiskt är ett problem som lösts.

Bara att kolla minnesanvändningen i task manager. Programmet friger aldrig minnet. Mao så körs aldrig GC.
Den går inte ner även efter 10minuter och laddar jag in fler filer så crashar till slut webbläsaren för att minnet är slut.

Jag läser in filer på många hundra MB. Detta minne måste jag få tillbaka innan jag kan läsa nästa fil.

Jag kan testa betan, men alla som skall använda programmet kommer ju drabbas av samma problem. Det är mindre bra.

Permalänk
Medlem

@adzer:
Inte haft liknande problem, men du bör väl via JS kunna säga till GC att frigöra minnet?

Permalänk
Medlem
Skrivet av anderjo4:

@adzer:
Inte haft liknande problem, men du bör väl via JS kunna säga till GC att frigöra minnet?

Så denna fiddle fungerar för dig i chrome?
fiddle

Inte så vitt jag vet. Alla tips är välkomna.
Känner spontant att det hade vart så skönt om man hade kunnat skriva C++ för webben