Closed Bug 925348 Opened 6 years ago Closed 6 years ago

contacts list doRenderTimer() can take >30ms while scrolling


(Firefox OS Graveyard :: Gaia::Contacts, defect, P1)

Gonk (Firefox OS)


(blocking-b2g:koi+, b2g-v1.2 fixed)

1.2 C3(Oct25)
blocking-b2g koi+
Tracking Status
b2g-v1.2 --- fixed


(Reporter: bkelly, Assigned: bkelly)



(Keywords: perf, Whiteboard: [c=handeye p= s= u=1.2])


(1 file)

Profiling contacts app list scroll immediately after load shows that the doRenderTimer() function is taking >30ms.  Given that our scrolling frame budget is ~16ms, this is too long.

See the profile here at time range 37750 to 37866:

Its unclear if we can make the work performed by doRenderTimer() more efficient, but we might be able to spread it out more to avoid computation spikes.
Blocks: 922316
This pull request spreads out the contact rendering work during scrolling by adjusting the tag_visibility_monitor parameters.  The new parameters result in more frequent updates from the monitor.  This comes at a slight overhead cost, but avoids large spikes of modifications at a single time.

Overall I think this is probably better than limiting the loop in doRenderTimer() since it avoids creating another layer of code to perform throttling.
Attachment #815554 - Flags: review?(jmcf)
Attachment #815554 - Attachment mime type: text/plain → text/html
Nom koi? because this blocks a blocker.
blocking-b2g: --- → koi?
Triage: Comms team would not block: New perf requirements (see enhancements) 
but since the contacts performance bug is koi+ by the perf team, letting perf team make the call on this one
Comment on attachment 815554 [details]
Pull request at

handing over the review to Francisco as next week I will be on PTO
Attachment #815554 - Flags: review?(jmcf) → review?(francisco.jordano)
Comment on attachment 815554 [details]
Pull request at

Simple change, tried on the phone and working fine.

Thanks Ben!
Attachment #815554 - Flags: review?(francisco.jordano) → review+
blocking-b2g: koi? → koi+
Priority: -- → P1
Whiteboard: [c= p= s= u=] → [c=handeye p= s= u=1.2]
Closed: 6 years ago
Resolution: --- → FIXED
Uplifted 01e5ae83a57ac5df4e173edb83c2ad2e2d8dfec0 to:
v1.2: 46b38f71c65d8bc2a9c5078c6bcca9de79f977a5
Target Milestone: --- → 1.2 C3(Oct25)
You need to log in before you can comment on or make changes to this bug.