Last Comment Bug 757483 - Score Rush gets more choppy w/ igc
: Score Rush gets more choppy w/ igc
Status: RESOLVED FIXED
[js:p2][games]
:
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: unspecified
: All All
: -- normal (vote)
: mozilla15
Assigned To: [PTO to Dec5] Bill McCloskey (:billm)
:
: Jason Orendorff [:jorendorff]
Mentors:
Depends on:
Blocks: gecko-games 735099
  Show dependency treegraph
 
Reported: 2012-05-22 09:22 PDT by Luke Wagner [:luke]
Modified: 2012-05-24 09:31 PDT (History)
9 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
incremental GC profile (2.58 MB, application/octet-stream)
2012-05-22 09:22 PDT, Luke Wagner [:luke]
no flags Details
non-incremental GC profile (1.97 MB, application/octet-stream)
2012-05-22 09:23 PDT, Luke Wagner [:luke]
no flags Details
patch (1.53 KB, patch)
2012-05-23 12:03 PDT, [PTO to Dec5] Bill McCloskey (:billm)
bhackett1024: review+
Details | Diff | Splinter Review

Description Luke Wagner [:luke] 2012-05-22 09:22:15 PDT
Created attachment 626050 [details]
incremental GC profile

With bug 750834 Score Rush is pretty smooth (17ms to render a frame).  The GC pauses are 35ms which is also pretty ok.  However, if you turn on igc, things are observably worse.

The per-frame profile attached also looks a lot worse: lots of recompilation, lots of interpreter time.  It almost looks like there is a bug involving igc where we throw away/recompile too much.

(To view the profile, you'll need to use billm's viewer.)
Comment 1 Luke Wagner [:luke] 2012-05-22 09:23:12 PDT
Created attachment 626052 [details]
non-incremental GC profile

This is w/ igc turned off.  Looks much prettier.
Comment 2 [PTO to Dec5] Bill McCloskey (:billm) 2012-05-23 12:03:47 PDT
Created attachment 626537 [details] [diff] [review]
patch

We were setting the preserve flag in BeginMarkPhase, which is called once per incremental GC, and then unsetting it in ~AutoGCSession, which is called at the end of every slice. So in later slices, code was getting thrown away.
Comment 3 [PTO to Dec5] Bill McCloskey (:billm) 2012-05-23 16:28:12 PDT
https://hg.mozilla.org/integration/mozilla-inbound/rev/9ddbd1da2f9b
Comment 4 Luke Wagner [:luke] 2012-05-24 02:40:08 PDT
Wow, that was fast!  With this patch, I can see the biggest GC slice (the first) is only 16.6ms and the whole frame renders in 28.4ms; big improvement over non-incremental.
Comment 5 Ed Morley [:emorley] 2012-05-24 09:31:08 PDT
https://hg.mozilla.org/mozilla-central/rev/9ddbd1da2f9b

Note You need to log in before you can comment on or make changes to this bug.