New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 711191 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug


Previous locations:
v8:6260


Sign in to add a comment

GC takes over 20% of the time in complex Ember performance test

Project Member Reported by bmeu...@chromium.org, Apr 13 2017

Issue description

Looking into "Render Complex List (HTML)" from http://emberperf.eviltrout.com/, it seems that we spend over 20% of the time in the GC (according to chrome://tracing). That seems like a lot compared to what we see normally. Probably worth investigating, especially since --trace-gc doesn't show a lot of garbage being collected.
 
emberperf1.png
368 KB View Download
emberperf2.png
618 KB View Download
A community member also did measurements with a Nexus5 device. What is very interesting (and concerning) are the error rates. Yes that is a 4 digit percentage :-).
NRaqpIKC.jpg
277 KB View Download
Project: chromium
Moved issue v8:6260 to now be  issue chromium:711191 .
Components: Blink>JavaScript>GC
Labels: -OS-All -Type-FeatureRequest -HW-All OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows Pri-2 Type-Bug
Labels: -Priority-2
Lets not mix up issues here. If the error rates are of concerns then please open another issue. I am not looking at the benchmark results but at the runtime call stats. 

The problem seems to be that the scavenge times are pretty high. Even on our Z840 they can be around 40ms.

I did a quick check with the minor mark compact prototype I am trying to finalize this quarter. The prototype is still bit buggy, i.e., not every run succeeds. I also doesn't yet moves pages, but already makes use of some concurrency for moving around objects.

This seems to reduce the GC times from 20% to around ~12%.
minor-mc-complex-list.png
131 KB View Download
Cc: u...@chromium.org cbruni@chromium.org
Status: Fixed (was: Assigned)
The parallel scavenger landed, so it is time for re-evaluation.

$ cat out-base.log | grep gc=s | ~/workspace/v8/v8/tools/eval_gc_nvp.py pause
pause
  len: 231
  min: 1.4
  max: 28.4
  avg: 11.2766233766
  [0,5[: 34
  [5,10[: 58
  [10,15[: 99
  [15,20[: 27
  [20,25[: 11
  [25,30[: 2
$ cat out-parallel.log | grep gc=s | ~/workspace/v8/v8/tools/eval_gc_nvp.py pause
pause
  len: 194
  min: 1.2
  max: 15.6
  avg: 6.52422680412
  [0,5[: 16
  [5,10[: 166
  [10,15[: 10
  [15,20[: 2

Scavenge pauses are reduced by 42% in this benchmark when looking at NVP logs.

Looking at RCS (traced attached) we are down to 10% GC time from the initial 20% in #0; that's 2x. I think we can mark this as fixed now.
out-base.log
235 KB View Download
out-parallel.log
326 KB View Download
trace_trace_complex_list_parallel_scavenge.json.gz
1.5 MB Download
render_complex_list_result.png
77.5 KB View Download

Sign in to add a comment