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
