Hello,

We're running a game engine natively on Android using v8.  It works fine, 
except that garbage collection causes periodic hesitations (pauses) in 
display.  I'm using the AddGCPrologueCallback() & AddGCEpilogueCallback() 
to log the gc.  The Scavenge type gc does not cause a problem, only the 
MarkSweepCompact type.
The way it happens depends on the number of active entities in the game.  
With few entities we get MSC type GC every minute or so, and no visible 
hesitation.  But with high number of entities, MSC happens every 4-5 
seconds, and visually estimating, it looks like pause periods of 
100-300mS.  Are there any options to change GC behavior to avoid this 
problem?  I've tried " --max-new-space-size=1024 --never-compact" flags 
based on suggestion by Erik Cory in this stack overflow 
question<http://stackoverflow.com/questions/5603011/node-js-and-v8-garbage-collection>,
 
but it still behaves the same.  

Thanks for your help.

------------

Some more info:

I'm measuring the period between Prologue and Epilogue callbacks to see how 
long GC takes.  Not sure if this is a good way of measuring or not.  For 
some reason with low entity numbers, where there's no visible hesitation, 
the GC time measures 30-100 mS.  But with high entity numbers, where the 
pause is noticable, the GC time measures about 17 mS. 

I'm using V8 version 3.9.21.
 
Below, I've pasted some GC log info through setting "--trace-gc-verbose 
--trace-gc".

10-10 00:27:34.140: INFO/v8(32656): ?D?? 
6351031365587755522057220257292374326212763523190095872.0 -> -0.0 MB, 
10-10 00:27:34.140: INFO/v8(32656): 1263571892 ms.
10-10 00:27:34.140: INFO/v8(32656): Memory allocator,   used: 1263571876, 
available: -2118013160
10-10 00:27:34.140: INFO/v8(32656): New space,          used: 1263571876, 
available: -2118013160
10-10 00:27:34.140: INFO/v8(32656): Old pointers,       used: 1263571876, 
available: -2118013160, waste: 1263571876
10-10 00:27:34.140: INFO/v8(32656): Old data space,     used: 1263571876, 
available: -2118013160, waste: 1263571876
10-10 00:27:34.140: INFO/v8(32656): Code space,         used: 1263571876, 
available: -2118013160, waste: 1263571876
10-10 00:27:34.140: INFO/v8(32656): Map space,          used: 1263571876, 
available: -2118013160, waste: 1263571876
10-10 00:27:34.140: INFO/v8(32656): Cell space,         used: 1263571876, 
available: -2118013160, waste: 1263571876
10-10 00:27:34.140: INFO/v8(32656): Large object space, used: 1263571892, 
available: -2118498744
10-10 00:27:34.320: INFO/v8(32656): ?D?? 
6350937828500622873889477860090764425384320345802014720.0 -> -0.0 MB, 
10-10 00:27:34.320: INFO/v8(32656): 1263571876 ms.
10-10 00:27:34.320: INFO/v8(32656): Memory allocator,   used: 1263571860, 
available: -2118013160
10-10 00:27:34.320: INFO/v8(32656): New space,          used: 1263571860, 
available: -2118013160
10-10 00:27:34.320: INFO/v8(32656): Old pointers,       used: 1263571860, 
available: -2118013160, waste: 1263571860
10-10 00:27:34.320: INFO/v8(32656): Old data space,     used: 1263571860, 
available: -2118013160, waste: 1263571860
10-10 00:27:34.320: INFO/v8(32656): Code space,         used: 1263571860, 
available: -2118013160, waste: 1263571860
10-10 00:27:34.320: INFO/v8(32656): Map space,          used: 1263571860, 
available: -2118013160, waste: 1263571860
10-10 00:27:34.320: INFO/v8(32656): Cell space,         used: 1263571860, 
available: -2118013160, waste: 1263571860
10-10 00:27:34.320: INFO/v8(32656): Large object space, used: 1263571876, 
available: -2118498744

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

Reply via email to