Thanks Ben.  I'm testing this on Linux.  RH7 VM and Fedora 20.  It's good 
to know that you haven't seen this yourself.  
I am seeing it when I dispose the isolate only when LowMemoryNotification 
is insufficient to clear stuff.  

I am sure it's a leak not a fragmentation.  This is what I see with sar -r:

01:00:02 PM 14200464 18580952 56.68 192932 4271524 31294112 76.01 14207024 
3105796 156 
01:10:01 PM 9128756 23652660 72.15 193988 4310140 37980896 92.25 19236772 
3136272 136 
01:20:02 PM 5579180 27202236 82.98 194800 4255556 41479544 100.75 22840464 
3074896 144 
01:30:02 PM 778656 32002760 97.62 175880 4218864 46678872 113.38 27647292 
3056648 96 
01:40:02 PM 251640 32529776 99.23 2372 581720 54419028 132.18 29623748 
1665516 144 
01:50:02 PM 405564 32375852 98.76 2516 499560 58361172 141.76 28903920 
2223420 148 
--- process got killed and restarted ---
02:00:02 PM 29851432 2929984 8.94 13224 696908 15415752 37.44 1416408 
386944 0

I'll try with a different test to dispose and recreate isolates that don't 
have issues with GC.  I'll report back.

On Tuesday, December 13, 2016 at 4:34:39 AM UTC-8, Ben Noordhuis wrote:
>
> On Tue, Dec 13, 2016 at 3:15 AM, Jane Chen <[email protected] 
> <javascript:>> wrote: 
> > Related to this thread: 
> > 
> >   https://groups.google.com/forum/#!topic/v8-users/deYE9pzK9b8 
> > 
> > I am having some difficulty with garbage collection in v8 5.3.  As a 
> result, 
> > I do the following after running a JavaScript request: 
> > 
> > 1) ContextDisposedNotification 
> > 2) IdleNotificationDeadline 
> > 3) If uncollected references still exist, LowMemoryNotification 
> > 4) If uncollected references still exist, reset them in my code, then 
> > dispose the isolate. 
> > 
> > Although this avoids a crash or memory corruption most of the time, I 
> get a 
> > memory leak and eventually run out of memory. 
> > 
> > The way I dispose an isolate is just by calling Isolate::Dispose().  Am 
> I 
> > missing anything? 
> > 
> > Conceptually, is the memory allocated and consumed in an isolate 
> completely 
> > freed when the isolate is disposed?  Even when garbage collection is 
> > incomplete in that isolate? 
> > 
> > Thanks in advance. 
>
> It should release all resources, yes.  I was looking into 
> multi-isolate support in node.js a while ago and I didn't notice any 
> memory leaks with 5.3 (IIRC, it might also have been 5.1.) 
>
> Have you run your application through valgrind?  Is it possible it's 
> memory fragmentation instead of a memory leak? 
>
> If you have multiple isolates making interleaved allocations, it's 
> possible the address space fragments too much for a new isolate to 
> reserve a sufficiently large chunk, even if some of the older isolates 
> have been disposed of. 
>
> That's normally only a problem with 32 bits builds although 64 bits 
> Solaris/Illumos can be pretty terrible too. 
>

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to