Skip to content
  • jsbell@chromium.org's avatar
    aeac0f8f
    IndexedDB: Run multiple tasks per transaction tick · aeac0f8f
    jsbell@chromium.org authored
    https://bugs.webkit.org/show_bug.cgi?id=97738
    
    Reviewed by Tony Chang.
    
    Process multiple tasks from the pending queue(s) when the timer fires. The
    task may initiate new tasks that change which queue is active (e.g. indexing
    operations) so the loop must re-check each tick which queue to use.
    
    In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
    in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
    
    No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
    
    * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
    (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
    (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134529 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    aeac0f8f
    IndexedDB: Run multiple tasks per transaction tick
    jsbell@chromium.org authored
    https://bugs.webkit.org/show_bug.cgi?id=97738
    
    Reviewed by Tony Chang.
    
    Process multiple tasks from the pending queue(s) when the timer fires. The
    task may initiate new tasks that change which queue is active (e.g. indexing
    operations) so the loop must re-check each tick which queue to use.
    
    In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
    in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
    
    No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
    
    * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
    (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
    (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134529 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Loading