Hello!

My application (using V8 3.2.2.1) starts off running very well but
gradually slows down. My guess is I have some form of leak which is
causing the GC to have to check more and more over time, but its not
clear to me how I can best track it down.

Profiling shows IterateStrongRoots starts to swamp the CPU after a
couple of minutes.

I enabled -trace-gc --trace-gc-nvp:

~0 seconds: pause=26 mutator=128 gc=ms external=7  mark=12 sweep=7
sweepns=7 compact=0 total_size_before=9443740 total_size_after=959396
holes_size_before=317796 holes_size_after=412116 allocated=8446216
promoted=70832
60 seconds: pause=67 mutator=126 gc=ms external=14 mark=39 sweep=14
sweepns=13 compact=0 total_size_before=9410524 total_size_after=988920
holes_size_before=425740 holes_size_after=480068 allocated=8441648
promoted=77816
120 seconds: pause=109 mutator=120 gc=ms external=23 mark=66 sweep=20
sweepns=20 compact=0 total_size_before=9494728
total_size_after=1081072 holes_size_before=397320
holes_size_after=420880 allocated=8440584 promoted=174032

Although I don't understand everything it is dumping, "pause" is
increasing which I assume means GC is talking longer over time
confirming what profiling already showed, but do the other values hint
of the problem? Are there any other flags that might help reveal the
problem?

The application uses AdjustAmountOfExternalAllocatedMemory to report
external memory use (which is substantial) and I initially suspected
this as the culprit, however the blocks are freed and the persistent
handles Disposed and Cleared.

I've check for memory leaks using external tools, and it has found
some however this has little meaning until I can coordinate the system
to stop, ensure GC has done all it can so all that is left are real
leaks and get the report.

Any pointers would be great!

Stuart.

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to