Comment #3 on issue 1904 by [email protected]: NewGC: http://29a.ch/2010/6/2/realtime-raytracing-in-javascript stalls for >30s of GCs on MacOS
http://code.google.com/p/v8/issues/detail?id=1904

I uploaded a fix for the first issue (why we perform GCs) http://codereview.chromium.org/9138019/

As for the second issue, most of the time is spent in MarkCompactCollector::RefillMarkingDeque() which is called from MarkCompactCollector::ProcessMarkingDeque(). The body of the loop in ProcessMarkingDeque is executed 72 times and each step takes longer than the previous one.

It looks like the marking deque quickly overflows and we have to restart scanning the old space for grey objects from the very beginning (heap size is about 200MB).

[processing marking deque] start, marking deque size 131072
... step 0 took 41.52 ms
... step 1 took 42.39 ms
... step 2 took 45.63 ms
... step 3 took 47.29 ms
... step 4 took 48.50 ms
... step 5 took 49.97 ms
... step 6 took 51.57 ms
... step 7 took 52.89 ms
... step 8 took 55.31 ms
... step 9 took 57.65 ms
... step 10 took 58.61 ms
... step 11 took 58.88 ms
... step 12 took 60.91 ms
... step 13 took 61.92 ms
... step 14 took 64.17 ms
... step 15 took 65.12 ms
... step 16 took 66.93 ms
... step 17 took 68.04 ms
... step 18 took 69.70 ms
... step 19 took 71.27 ms
... step 20 took 72.90 ms
... step 21 took 74.35 ms
... step 22 took 75.88 ms
... step 23 took 77.20 ms
... step 24 took 78.94 ms
... step 25 took 81.13 ms
... step 26 took 81.98 ms
... step 27 took 83.20 ms
... step 28 took 84.99 ms
... step 29 took 85.56 ms
... step 30 took 87.99 ms
... step 31 took 88.93 ms
... step 32 took 90.63 ms
... step 33 took 92.05 ms
... step 34 took 95.11 ms
... step 35 took 96.69 ms
... step 36 took 96.24 ms
... step 37 took 97.93 ms
... step 38 took 99.90 ms
... step 39 took 101.46 ms
... step 40 took 103.50 ms
... step 41 took 105.34 ms
... step 42 took 106.37 ms
... step 43 took 108.28 ms
... step 44 took 109.55 ms
... step 45 took 112.29 ms
... step 46 took 111.58 ms
... step 47 took 113.51 ms
... step 48 took 114.85 ms
... step 49 took 116.02 ms
... step 50 took 118.80 ms
... step 51 took 120.61 ms
... step 52 took 121.18 ms
... step 53 took 123.25 ms
... step 54 took 123.74 ms
... step 55 took 125.94 ms
... step 56 took 127.16 ms
... step 57 took 128.55 ms
... step 58 took 129.47 ms
... step 59 took 132.46 ms
... step 60 took 132.67 ms
... step 61 took 134.98 ms
... step 62 took 135.14 ms
... step 63 took 137.32 ms
... step 64 took 139.40 ms
... step 65 took 140.68 ms
... step 66 took 141.67 ms
... step 67 took 143.80 ms
... step 68 took 145.72 ms
... step 69 took 147.26 ms
... step 70 took 148.22 ms
... step 71 took 147.27 ms
[processing marking deque] end: 6992.24 ms and 72 steps


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

Reply via email to