diff options
author | alexclarke <alexclarke@chromium.org> | 2015-07-23 04:50:35 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-23 11:51:06 +0000 |
commit | 1794435f9e62136c4c8bcf53094a76a04b4cd0ed (patch) | |
tree | 1b6a9d330173dc22b02350a5a66228c5b7703fe1 /components/components_tests.gyp | |
parent | bfa69c11721bc28bf7a4812fbeb3062364a009b6 (diff) | |
download | chromium_src-1794435f9e62136c4c8bcf53094a76a04b4cd0ed.zip chromium_src-1794435f9e62136c4c8bcf53094a76a04b4cd0ed.tar.gz chromium_src-1794435f9e62136c4c8bcf53094a76a04b4cd0ed.tar.bz2 |
Introduce TaskQueueSets and use them in the TQM and Selector
Previously we where doing a linear scan of all task queues registered
with a particular priority. This is fine when the number of task
queues is low. However we are anticiapting having dozens or even
hundreds of task queues, so a faster selection algorithm is needed.
This patch uses a std::map to accellerate the finding of the oldest
task in a particular set (priority). Insert and removal is O(lg n)
and begin(), which points to the lowest key, is O(1).
In addtion the TaskQueueManager now supports dynamic creation of task queues.
For performance we now address queues by pointer rather than
by index inside the scheduler.
BUG=510398
Review URL: https://codereview.chromium.org/1231743003
Cr-Commit-Position: refs/heads/master@{#340073}
Diffstat (limited to 'components/components_tests.gyp')
-rw-r--r-- | components/components_tests.gyp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/components/components_tests.gyp b/components/components_tests.gyp index 5bca9ae..e439669 100644 --- a/components/components_tests.gyp +++ b/components/components_tests.gyp @@ -506,12 +506,13 @@ 'scheduler/child/idle_helper_unittest.cc', 'scheduler/child/nestable_task_runner_for_test.cc', 'scheduler/child/nestable_task_runner_for_test.h', - 'scheduler/child/prioritizing_task_queue_selector_unittest.cc', 'scheduler/child/scheduler_helper_unittest.cc', 'scheduler/child/scheduler_task_runner_delegate_for_test.cc', 'scheduler/child/scheduler_task_runner_delegate_for_test.h', 'scheduler/child/scheduler_task_runner_delegate_impl_unittest.cc', 'scheduler/child/task_queue_manager_unittest.cc', + 'scheduler/child/task_queue_selector_unittest.cc', + 'scheduler/child/task_queue_sets_unittest.cc', 'scheduler/child/test_time_source.cc', 'scheduler/child/test_time_source.h', 'scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc', |