• Etienne Pierre-Doray's avatar
    [TaskScheduler]: Implement scheduler perftests. · a71ceeb5
    Etienne Pierre-Doray authored
    Implements perftests that measure throughput of running and posting tasks.
    
    Results on Windows P920:
    [ RUN      ] TaskSchedulerPerfTest.PostThenRunNoOpTasks
    *RESULT Posting tasks throughput: Post-then-run no-op tasks= 1.86 us/task
    *RESULT Running tasks throughput: Post-then-run no-op tasks= 3.5304 us/task
    *RESULT Num tasks posted: Post-then-run no-op tasks= 10000 tasks
    [       OK ] TaskSchedulerPerfTest.PostThenRunNoOpTasks (57 ms)
    [ RUN      ] TaskSchedulerPerfTest.PostThenRunNoOpTasksManyThreads
    *RESULT Posting tasks throughput: Post-then-run no-op tasks many threads= 2.693075 us/task
    *RESULT Running tasks throughput: Post-then-run no-op tasks many threads= 2.58605 us/task
    *RESULT Num tasks posted: Post-then-run no-op tasks many threads= 40000 tasks
    [       OK ] TaskSchedulerPerfTest.PostThenRunNoOpTasksManyThreads (136 ms)
    [ RUN      ] TaskSchedulerPerfTest.PostThenRunNoOpTasksMorePostingThanRunningThreads
    *RESULT Posting tasks throughput: Post-then-run no-op tasks more posting than running threads= 3.253125 us/task
    *RESULT Running tasks throughput: Post-then-run no-op tasks more posting than running threads= 2.419125 us/task
    *RESULT Num tasks posted: Post-then-run no-op tasks more posting than running threads= 40000 tasks
    [       OK ] TaskSchedulerPerfTest.PostThenRunNoOpTasksMorePostingThanRunningThreads (135 ms)
    [ RUN      ] TaskSchedulerPerfTest.PostRunNoOpTasks
    *RESULT Posting tasks throughput: Post/run no-op tasks= 2.9757 us/task
    *RESULT Running tasks throughput: Post/run no-op tasks= 3.2136 us/task
    *RESULT Num tasks posted: Post/run no-op tasks= 10000 tasks
    [       OK ] TaskSchedulerPerfTest.PostRunNoOpTasks (35 ms)
    [ RUN      ] TaskSchedulerPerfTest.PostRunNoOpTasksManyThreads
    *RESULT Posting tasks throughput: Post/run no-op tasks many threads= 8.7977 us/task
    *RESULT Running tasks throughput: Post/run no-op tasks many threads= 2.26535 us/task
    *RESULT Num tasks posted: Post/run no-op tasks many threads= 40000 tasks
    [       OK ] TaskSchedulerPerfTest.PostRunNoOpTasksManyThreads (94 ms)
    [ RUN      ] TaskSchedulerPerfTest.PostRunBusyTasksManyThreads
    *RESULT Posting tasks throughput: Post/run busy tasks many threads= 4.046625 us/task
    *RESULT Running tasks throughput: Post/run busy tasks many threads= 50.63795 us/task
    *RESULT Num tasks posted: Post/run busy tasks many threads= 40000 tasks
    [       OK ] TaskSchedulerPerfTest.PostRunBusyTasksManyThreads (2028 ms)
    [ RUN      ] TaskSchedulerPerfTest.PostWithConstantWorkload
    *RESULT Posting tasks throughput: Post tasks with constant workload= .0135 us/task
    *RESULT Running tasks throughput: Post tasks with constant workload= 2.5396 us/task
    *RESULT Num tasks posted: Post tasks with constant workload= 10000 tasks
    [       OK ] TaskSchedulerPerfTest.PostWithConstantWorkload (29 ms)
    [----------] 7 tests from TaskSchedulerPerfTest (2523 ms total)
    
    Change-Id: I1e47eaf2db792d96e3e3ba290769e95673bd0b62
    Reviewed-on: https://chromium-review.googlesource.com/c/1296624
    Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
    Reviewed-by: default avatarFrançois Doray <fdoray@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#607835}
    a71ceeb5
BUILD.gn 117 KB