diff options
author | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-08 01:23:15 +0000 |
---|---|---|
committer | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-08 01:23:15 +0000 |
commit | 7ed8659dfdbe3aee863c6cb13c6e7fa25b25599c (patch) | |
tree | 0ba431a39fd262d914b7c8997680a5b86ad90c0d /cc | |
parent | 5d36df8a13c2db628a1b123f71cc7edbecebc0a3 (diff) | |
download | chromium_src-7ed8659dfdbe3aee863c6cb13c6e7fa25b25599c.zip chromium_src-7ed8659dfdbe3aee863c6cb13c6e7fa25b25599c.tar.gz chromium_src-7ed8659dfdbe3aee863c6cb13c6e7fa25b25599c.tar.bz2 |
cc: Use TestSimpleTaskRunner for RasterWorkerPool perf tests.
This gives us consistent performance numbers across platforms
as it prevents base message loop performance from affecting
these tests.
Note: this will likely affect the performance of
schedule_and_execute_tasks_*_raster_worker_pool perf tests.
BUG=
Review URL: https://codereview.chromium.org/335283004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281621 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r-- | cc/resources/raster_worker_pool_perftest.cc | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/cc/resources/raster_worker_pool_perftest.cc b/cc/resources/raster_worker_pool_perftest.cc index 320f573..6d922ed 100644 --- a/cc/resources/raster_worker_pool_perftest.cc +++ b/cc/resources/raster_worker_pool_perftest.cc @@ -4,6 +4,7 @@ #include "cc/resources/raster_worker_pool.h" +#include "base/test/test_simple_task_runner.h" #include "base/time/time.h" #include "cc/debug/lap_timer.h" #include "cc/output/context_provider.h" @@ -148,6 +149,7 @@ class RasterWorkerPoolPerfTestBase { RasterWorkerPoolPerfTestBase() : context_provider_(make_scoped_refptr(new PerfContextProvider)), + task_runner_(new base::TestSimpleTaskRunner), task_graph_runner_(new TaskGraphRunner), timer_(kWarmupRuns, base::TimeDelta::FromMilliseconds(kTimeLimitMillis), @@ -203,6 +205,7 @@ class RasterWorkerPoolPerfTestBase { scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; scoped_ptr<ResourceProvider> resource_provider_; scoped_ptr<ResourcePool> staging_resource_pool_; + scoped_refptr<base::TestSimpleTaskRunner> task_runner_; scoped_ptr<TaskGraphRunner> task_graph_runner_; LapTimer timer_; }; @@ -216,27 +219,27 @@ class RasterWorkerPoolPerfTest switch (GetParam()) { case RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER: raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( - base::MessageLoopProxy::current().get(), + task_runner_.get(), task_graph_runner_.get(), resource_provider_.get(), std::numeric_limits<size_t>::max()); break; case RASTER_WORKER_POOL_TYPE_IMAGE: - raster_worker_pool_ = ImageRasterWorkerPool::Create( - base::MessageLoopProxy::current().get(), - task_graph_runner_.get(), - resource_provider_.get()); + raster_worker_pool_ = + ImageRasterWorkerPool::Create(task_runner_.get(), + task_graph_runner_.get(), + resource_provider_.get()); break; case RASTER_WORKER_POOL_TYPE_IMAGE_COPY: - raster_worker_pool_ = ImageCopyRasterWorkerPool::Create( - base::MessageLoopProxy::current().get(), - task_graph_runner_.get(), - resource_provider_.get(), - staging_resource_pool_.get()); + raster_worker_pool_ = + ImageCopyRasterWorkerPool::Create(task_runner_.get(), + task_graph_runner_.get(), + resource_provider_.get(), + staging_resource_pool_.get()); break; case RASTER_WORKER_POOL_TYPE_GPU: raster_worker_pool_ = GpuRasterWorkerPool::Create( - base::MessageLoopProxy::current().get(), resource_provider_.get()); + task_runner_.get(), resource_provider_.get()); break; } @@ -257,13 +260,12 @@ class RasterWorkerPoolPerfTest } virtual void DidFinishRunningTasks() OVERRIDE { raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks(); - base::MessageLoop::current()->Quit(); } virtual void DidFinishRunningTasksRequiredForActivation() OVERRIDE {} void RunMessageLoopUntilAllTasksHaveCompleted() { task_graph_runner_->RunUntilIdle(); - base::MessageLoop::current()->Run(); + task_runner_->RunUntilIdle(); } void RunScheduleTasksTest(const std::string& test_name, |