• Dave Tapuska's avatar
    Use TLS to stash the thread id on linux. · 5efc4727
    Dave Tapuska authored
    Appears calling the syscall over and over can be slow.
    
    Use TLS to stash the result of the syscall.
    
    Benchmarks:
    
    Without change:
    taskset -c 0 base_perftests --gtest_filter=SequenceManagerPerfTest.RunTenThousandImmediateTasks_OneQueue*
    *RESULT task: run 10000 immediate tasks with one queue SequenceManager with message loop= 23483.009389671362 us/run
    *RESULT task: run 10000 immediate tasks with one queue SequenceManager with message pump= 17142.489726027397 us/run
    *RESULT task: run 10000 immediate tasks with one queue message loop= 5126.6598360655735 us/run
    *RESULT task: run 10000 immediate tasks with one queue single thread in WorkerPool= 9817.776470588235 us/run
    
    With change:
    taskset -c 0 base_perftests --gtest_filter=SequenceManagerPerfTest.RunTenThousandImmediateTasks_OneQueue*
    *RESULT task: run 10000 immediate tasks with one queue SequenceManager with message loop= 15673.59375 us/run
    *RESULT task: run 10000 immediate tasks with one queue SequenceManager with message pump= 8832.218694885361 us/run
    *RESULT task: run 10000 immediate tasks with one queue message loop= 5149.919670442842 us/run
    *RESULT task: run 10000 immediate tasks with one queue single thread in WorkerPool= 9926.059523809523 us/run
    
    BUG=898294
    
    Change-Id: I414ff18fd0c92a3837b50e20165bf295b4f63082
    Reviewed-on: https://chromium-review.googlesource.com/c/1291710Reviewed-by: default avatarFrançois Doray <fdoray@chromium.org>
    Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#602430}
    5efc4727
platform_thread_posix.cc 10.5 KB