(wangle) Use MicroSpinLock
authorHans Fugal <fugalh@fb.com>
Wed, 15 Oct 2014 21:05:59 +0000 (14:05 -0700)
committerdcsommer <dcsommer@fb.com>
Fri, 17 Oct 2014 18:43:44 +0000 (11:43 -0700)
commit7b3f1d1d824ad15fbf4d64bef2855b9f93dcfd5a
treed9d1cb6df8ea7c536b96b323e1a1933690a1b1a1
parent8ae778e340d1b2e5b627c600a9bb4f0a87735ee6
(wangle) Use MicroSpinLock

Summary: For great speed

Test Plan:
Before
============================================================================
folly/wangle/test/Benchmark.cpp                 relative  time/iter  iters/s
============================================================================
constantFuture                                             241.19ns    4.15M
promiseAndFuture                                 100.32%   240.42ns    4.16M
withThen                                          44.63%   540.47ns    1.85M
----------------------------------------------------------------------------
oneThen                                                    519.20ns    1.93M
twoThens                                          62.83%   826.41ns    1.21M
fourThens                                         36.80%     1.41us  708.75K
hundredThens                                       1.79%    29.05us   34.42K
----------------------------------------------------------------------------
no_contention                                                4.82ms   207.27
contention                                        62.91%     7.67ms   130.39
============================================================================

After
============================================================================
folly/wangle/test/Benchmark.cpp                 relative  time/iter  iters/s
============================================================================
constantFuture                                             159.79ns    6.26M
promiseAndFuture                                 101.23%   157.84ns    6.34M
withThen                                          41.78%   382.47ns    2.61M
----------------------------------------------------------------------------
oneThen                                                    358.23ns    2.79M
twoThens                                          63.07%   568.00ns    1.76M
fourThens                                         36.89%   971.07ns    1.03M
hundredThens                                       1.76%    20.34us   49.17K
----------------------------------------------------------------------------
no_contention                                                3.75ms   266.75
contention                                        59.83%     6.27ms   159.59
============================================================================

That's a 150% speedup.

Reviewed By: davejwatson@fb.com

Subscribers: net-systems@, fugalh, exa, njormrod

FB internal diff: D1617363

Tasks: 5278220
folly/wangle/detail/Core.h