Skip to content
  • shrike's avatar
    [Mac] Reduce timer CPU use in MessagePumpCFRunLoopBase. · 3a16446d
    shrike authored
    MessagePumpCFRunLoopBase's approach to timers, as recommended by Apple,
    leads to two timer reschedulings per timer firing. Timer reschedulings
    are quite expensive, and the extra rescheduling can cause Chrome to
    consume up to 2x the CPU of Safari on the same page. This change uses
    private (but not secret) API to temporarily invalidate a
    MessagePumpCFRunLoopBase's CFRunLoopTimer, causing the run loop to bypass
    the extra rescheduling.
    
    R=mark@chromium.org, rsesek@chromium.org
    BUG=511406
    
    Review-Url: https://codereview.chromium.org/2709813003
    Cr-Commit-Position: refs/heads/master@{#452852}
    3a16446d