diff options
| author | Mathieu Chartier <mathieuc@google.com> | 2014-07-15 18:10:25 -0700 |
|---|---|---|
| committer | Mathieu Chartier <mathieuc@google.com> | 2014-07-15 18:40:40 -0700 |
| commit | b960cd7342cd68a614bb0c54d0d676cc2b8caf29 (patch) | |
| tree | 9a85fd8aa1a4864771ee54341d692217a5162f25 /test/ProfileTestMultiDex | |
| parent | 59fe711f88191cd8ca1a386c4fa0d2f9e484af50 (diff) | |
Use sched_yield in Monitor::MonitorEnter.
Previously we used NanoSleep(1000), but this was unreliable. It could
result in waiting for >= 40ms instead of 1us. Since this was in a loop
it was especially bad if the GC was trying to suspend all the
threads when we were sleeping. This resulted in thread suspension
occasionally taking longer than a second.
Results on the provided picasso-sample app on Nexus 5:
Longest GC pause before: ~1.5s.
Longest GC pause after: <5ms.
Also added a warning if thread suspension takes longer than a
threshold (currently 5ms).
Bug: 16307460
External bug: https://code.google.com/p/android-developer-preview/issues/detail?id=367
(cherry picked from commit 251755cd511463260e60be98bf138b6aa1c14bf3)
Change-Id: I491c0799cc23ee6e68abc1bf77d1f0f4263e8ef5
Diffstat (limited to 'test/ProfileTestMultiDex')
0 files changed, 0 insertions, 0 deletions
