react-native-windows 0.84.0 → 0.84.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (923) hide show
  1. package/Directory.Build.props +2 -17
  2. package/Folly/ThreadNameStub.cpp +4 -6
  3. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  4. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -7
  5. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +0 -3
  6. package/PropertySheets/CIBuildOptimizations.props +2 -2
  7. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  8. package/PropertySheets/JSEngine.props +1 -1
  9. package/PropertySheets/NuGet.LockFile.props +10 -1
  10. package/PropertySheets/React.Cpp.props +3 -3
  11. package/PropertySheets/WinUI.props +2 -1
  12. package/ReactCommon/ReactCommon.vcxproj +0 -5
  13. package/Scripts/EnableInternalWinAppSDKFeed.ps1 +12 -5
  14. package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +61 -6
  15. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -37
  16. package/Scripts/UpdateNightlyDependencies.ps1 +47 -0
  17. package/Scripts/creaternwapp.cmd +5 -8
  18. package/Scripts/creaternwlib.cmd +10 -23
  19. package/Shared/Shared.vcxitems +2 -0
  20. package/{Folly → external}/.clang-format +0 -1
  21. package/external/External.vcxitems +10 -0
  22. package/external/fast-float/.syncignore +10 -0
  23. package/external/fast-float/LICENSE-APACHE +190 -0
  24. package/external/fast-float/LICENSE-BOOST +23 -0
  25. package/external/fast-float/LICENSE-MIT +27 -0
  26. package/external/fast-float/README.md +545 -0
  27. package/external/fast-float/cgmanifest.json +15 -0
  28. package/external/fast-float/fast-float.vcxitems +14 -0
  29. package/external/fast-float/include/fast_float/ascii_number.h +588 -0
  30. package/external/fast-float/include/fast_float/bigint.h +638 -0
  31. package/external/fast-float/include/fast_float/constexpr_feature_detect.h +46 -0
  32. package/external/fast-float/include/fast_float/decimal_to_binary.h +212 -0
  33. package/external/fast-float/include/fast_float/digit_comparison.h +457 -0
  34. package/external/fast-float/include/fast_float/fast_float.h +59 -0
  35. package/external/fast-float/include/fast_float/fast_table.h +708 -0
  36. package/external/fast-float/include/fast_float/float_common.h +1240 -0
  37. package/external/fast-float/include/fast_float/parse_number.h +399 -0
  38. package/external/fast-float/sync-config.json +8 -0
  39. package/external/fmt/.syncignore +10 -0
  40. package/external/fmt/CONTRIBUTING.md +20 -0
  41. package/external/fmt/LICENSE +27 -0
  42. package/external/fmt/README.md +484 -0
  43. package/external/fmt/doc/ChangeLog-old.md +3290 -0
  44. package/external/fmt/doc/api.md +650 -0
  45. package/external/fmt/doc/fmt.css +61 -0
  46. package/external/fmt/doc/fmt.js +4 -0
  47. package/external/fmt/doc/get-started.md +222 -0
  48. package/external/fmt/doc/index.md +151 -0
  49. package/external/fmt/doc/perf.svg +1 -0
  50. package/external/fmt/doc/python-license.txt +290 -0
  51. package/external/fmt/doc/syntax.md +887 -0
  52. package/external/fmt/fmt.vcxitems +28 -0
  53. package/external/fmt/include/fmt/args.h +228 -0
  54. package/external/fmt/include/fmt/base.h +3077 -0
  55. package/external/fmt/include/fmt/chrono.h +2432 -0
  56. package/external/fmt/include/fmt/color.h +612 -0
  57. package/external/fmt/include/fmt/compile.h +529 -0
  58. package/external/fmt/include/fmt/core.h +5 -0
  59. package/external/fmt/include/fmt/format-inl.h +1928 -0
  60. package/external/fmt/include/fmt/format.h +4427 -0
  61. package/external/fmt/include/fmt/os.h +439 -0
  62. package/external/fmt/include/fmt/ostream.h +211 -0
  63. package/external/fmt/include/fmt/printf.h +656 -0
  64. package/external/fmt/include/fmt/ranges.h +882 -0
  65. package/external/fmt/include/fmt/std.h +699 -0
  66. package/external/fmt/include/fmt/xchar.h +322 -0
  67. package/external/fmt/src/fmt.cc +135 -0
  68. package/external/fmt/src/format.cc +43 -0
  69. package/external/fmt/src/os.cc +403 -0
  70. package/external/fmt/sync-config.json +8 -0
  71. package/external/folly/.syncignore +60 -0
  72. package/external/folly/LICENSE +200 -0
  73. package/external/folly/README.md +263 -0
  74. package/{fmt → external/folly/folly}/.clang-format +0 -1
  75. package/external/folly/folly/AtomicHashArray-inl.h +546 -0
  76. package/external/folly/folly/AtomicHashArray.h +431 -0
  77. package/external/folly/folly/AtomicHashMap-inl.h +653 -0
  78. package/external/folly/folly/AtomicHashMap.h +484 -0
  79. package/external/folly/folly/AtomicIntrusiveLinkedList.h +206 -0
  80. package/external/folly/folly/AtomicLinkedList.h +110 -0
  81. package/external/folly/folly/AtomicUnorderedMap.h +522 -0
  82. package/external/folly/folly/BUCK +1631 -0
  83. package/external/folly/folly/BUILD_MODE.bzl +72 -0
  84. package/external/folly/folly/Benchmark.cpp +986 -0
  85. package/external/folly/folly/Benchmark.h +680 -0
  86. package/external/folly/folly/BenchmarkUtil.h +47 -0
  87. package/external/folly/folly/Bits.h +17 -0
  88. package/external/folly/folly/CMakeLists.txt +110 -0
  89. package/external/folly/folly/CPortability.h +338 -0
  90. package/external/folly/folly/CancellationToken-inl.h +449 -0
  91. package/external/folly/folly/CancellationToken.cpp +250 -0
  92. package/external/folly/folly/CancellationToken.h +365 -0
  93. package/external/folly/folly/Chrono.h +132 -0
  94. package/external/folly/folly/ClockGettimeWrappers.cpp +93 -0
  95. package/external/folly/folly/ClockGettimeWrappers.h +29 -0
  96. package/external/folly/folly/ConcurrentBitSet.h +157 -0
  97. package/external/folly/folly/ConcurrentLazy.h +74 -0
  98. package/external/folly/folly/ConcurrentSkipList-inl.h +341 -0
  99. package/external/folly/folly/ConcurrentSkipList.h +824 -0
  100. package/external/folly/folly/ConstructorCallbackList.h +158 -0
  101. package/external/folly/folly/Conv.h +2026 -0
  102. package/external/folly/folly/CppAttributes.h +170 -0
  103. package/external/folly/folly/CpuId.h +297 -0
  104. package/external/folly/folly/DefaultKeepAliveExecutor.h +172 -0
  105. package/external/folly/folly/Demangle.cpp +255 -0
  106. package/external/folly/folly/Demangle.h +73 -0
  107. package/external/folly/folly/DiscriminatedPtr.h +236 -0
  108. package/external/folly/folly/DynamicConverter.h +17 -0
  109. package/external/folly/folly/Exception.h +150 -0
  110. package/external/folly/folly/ExceptionString.cpp +51 -0
  111. package/external/folly/folly/ExceptionString.h +33 -0
  112. package/external/folly/folly/ExceptionWrapper-inl.h +264 -0
  113. package/external/folly/folly/ExceptionWrapper.cpp +37 -0
  114. package/external/folly/folly/ExceptionWrapper.h +377 -0
  115. package/external/folly/folly/Executor.cpp +111 -0
  116. package/external/folly/folly/Executor.h +351 -0
  117. package/external/folly/folly/Expected.h +1725 -0
  118. package/external/folly/folly/FBString.h +2888 -0
  119. package/external/folly/folly/FBVector.h +17 -0
  120. package/external/folly/folly/File.cpp +180 -0
  121. package/external/folly/folly/File.h +177 -0
  122. package/external/folly/folly/FileUtil.cpp +378 -0
  123. package/external/folly/folly/FileUtil.h +332 -0
  124. package/external/folly/folly/Fingerprint.cpp +135 -0
  125. package/external/folly/folly/Fingerprint.h +289 -0
  126. package/external/folly/folly/FixedString.h +2965 -0
  127. package/external/folly/folly/FollyMemcpy.cpp +30 -0
  128. package/external/folly/folly/FollyMemcpy.h +23 -0
  129. package/external/folly/folly/FollyMemset.cpp +29 -0
  130. package/external/folly/folly/FollyMemset.h +25 -0
  131. package/external/folly/folly/Format-inl.h +1152 -0
  132. package/external/folly/folly/Format.cpp +429 -0
  133. package/external/folly/folly/Format.h +463 -0
  134. package/external/folly/folly/FormatArg.h +285 -0
  135. package/external/folly/folly/FormatTraits.h +65 -0
  136. package/external/folly/folly/Function.h +1159 -0
  137. package/external/folly/folly/GLog.h +85 -0
  138. package/external/folly/folly/GroupVarint.cpp +153 -0
  139. package/external/folly/folly/GroupVarint.h +630 -0
  140. package/external/folly/folly/Hash.h +20 -0
  141. package/external/folly/folly/IPAddress.cpp +490 -0
  142. package/external/folly/folly/IPAddress.h +667 -0
  143. package/external/folly/folly/IPAddressException.h +82 -0
  144. package/external/folly/folly/IPAddressV4.cpp +305 -0
  145. package/external/folly/folly/IPAddressV4.h +495 -0
  146. package/external/folly/folly/IPAddressV6.cpp +541 -0
  147. package/external/folly/folly/IPAddressV6.h +627 -0
  148. package/external/folly/folly/Indestructible.h +164 -0
  149. package/external/folly/folly/IndexedMemPool.h +550 -0
  150. package/external/folly/folly/IntrusiveList.h +17 -0
  151. package/external/folly/folly/Lazy.h +142 -0
  152. package/external/folly/folly/Likely.h +76 -0
  153. package/external/folly/folly/MPMCPipeline.h +280 -0
  154. package/external/folly/folly/MPMCQueue.h +1556 -0
  155. package/external/folly/folly/MacAddress.cpp +188 -0
  156. package/external/folly/folly/MacAddress.h +260 -0
  157. package/external/folly/folly/MapUtil.h +17 -0
  158. package/external/folly/folly/Math.h +258 -0
  159. package/external/folly/folly/MaybeManagedPtr.h +120 -0
  160. package/external/folly/folly/Memory.h +900 -0
  161. package/external/folly/folly/MicroLock.cpp +76 -0
  162. package/external/folly/folly/MicroLock.h +354 -0
  163. package/external/folly/folly/MicroSpinLock.h +17 -0
  164. package/external/folly/folly/MoveWrapper.h +76 -0
  165. package/external/folly/folly/ObserverContainer.h +1026 -0
  166. package/external/folly/folly/Optional.h +743 -0
  167. package/external/folly/folly/Overload.h +325 -0
  168. package/external/folly/folly/PackedSyncPtr.h +147 -0
  169. package/external/folly/folly/Padded.h +464 -0
  170. package/external/folly/folly/Poly-inl.h +230 -0
  171. package/external/folly/folly/Poly.h +1095 -0
  172. package/external/folly/folly/PolyException.h +43 -0
  173. package/external/folly/folly/Portability.h +644 -0
  174. package/external/folly/folly/Preprocessor.h +236 -0
  175. package/external/folly/folly/ProducerConsumerQueue.h +182 -0
  176. package/external/folly/folly/RWSpinLock.h +17 -0
  177. package/external/folly/folly/Random-inl.h +86 -0
  178. package/external/folly/folly/Random.cpp +184 -0
  179. package/external/folly/folly/Random.h +434 -0
  180. package/external/folly/folly/Range.h +1772 -0
  181. package/external/folly/folly/Replaceable.h +636 -0
  182. package/external/folly/folly/ScopeGuard.cpp +29 -0
  183. package/external/folly/folly/ScopeGuard.h +420 -0
  184. package/external/folly/folly/SharedMutex.cpp +81 -0
  185. package/external/folly/folly/SharedMutex.h +1751 -0
  186. package/external/folly/folly/Singleton-inl.h +332 -0
  187. package/external/folly/folly/Singleton.cpp +512 -0
  188. package/external/folly/folly/Singleton.h +891 -0
  189. package/external/folly/folly/SingletonThreadLocal.cpp +53 -0
  190. package/external/folly/folly/SingletonThreadLocal.h +263 -0
  191. package/external/folly/folly/SocketAddress.cpp +786 -0
  192. package/external/folly/folly/SocketAddress.h +768 -0
  193. package/external/folly/folly/SpinLock.h +55 -0
  194. package/external/folly/folly/String-inl.h +668 -0
  195. package/external/folly/folly/String.cpp +777 -0
  196. package/external/folly/folly/String.h +767 -0
  197. package/external/folly/folly/Subprocess.cpp +1142 -0
  198. package/external/folly/folly/Subprocess.h +1055 -0
  199. package/external/folly/folly/Synchronized.h +1833 -0
  200. package/external/folly/folly/SynchronizedPtr.h +106 -0
  201. package/external/folly/folly/ThreadCachedInt.h +175 -0
  202. package/external/folly/folly/ThreadLocal.h +478 -0
  203. package/external/folly/folly/TimeoutQueue.cpp +78 -0
  204. package/external/folly/folly/TimeoutQueue.h +123 -0
  205. package/external/folly/folly/TokenBucket.h +673 -0
  206. package/external/folly/folly/Traits.h +1442 -0
  207. package/external/folly/folly/Try-inl.h +372 -0
  208. package/external/folly/folly/Try.cpp +23 -0
  209. package/external/folly/folly/Try.h +728 -0
  210. package/external/folly/folly/UTF8String.h +56 -0
  211. package/external/folly/folly/Unicode.cpp +201 -0
  212. package/external/folly/folly/Unicode.h +94 -0
  213. package/external/folly/folly/Unit.h +65 -0
  214. package/external/folly/folly/Uri-inl.h +101 -0
  215. package/external/folly/folly/Uri.cpp +190 -0
  216. package/external/folly/folly/Uri.h +142 -0
  217. package/external/folly/folly/Utility.h +932 -0
  218. package/external/folly/folly/VERSION +1 -0
  219. package/external/folly/folly/Varint.h +230 -0
  220. package/external/folly/folly/VirtualExecutor.h +17 -0
  221. package/external/folly/folly/algorithm/simd/BUCK +47 -0
  222. package/external/folly/folly/algorithm/simd/Contains.cpp +42 -0
  223. package/external/folly/folly/algorithm/simd/Contains.h +116 -0
  224. package/external/folly/folly/algorithm/simd/FindFixed.h +301 -0
  225. package/external/folly/folly/algorithm/simd/Ignore.h +52 -0
  226. package/external/folly/folly/algorithm/simd/Movemask.h +207 -0
  227. package/external/folly/folly/algorithm/simd/detail/BUCK +70 -0
  228. package/external/folly/folly/algorithm/simd/detail/ContainsImpl.h +91 -0
  229. package/external/folly/folly/algorithm/simd/detail/SimdAnyOf.h +83 -0
  230. package/external/folly/folly/algorithm/simd/detail/SimdForEach.h +209 -0
  231. package/external/folly/folly/algorithm/simd/detail/SimdPlatform.h +445 -0
  232. package/external/folly/folly/algorithm/simd/detail/Traits.h +125 -0
  233. package/external/folly/folly/algorithm/simd/detail/UnrollUtils.h +126 -0
  234. package/external/folly/folly/base64.h +264 -0
  235. package/external/folly/folly/chrono/BUCK +29 -0
  236. package/external/folly/folly/chrono/Clock.h +65 -0
  237. package/external/folly/folly/chrono/Conv.h +712 -0
  238. package/external/folly/folly/chrono/test/BUCK +26 -0
  239. package/external/folly/folly/chrono/test/ClockTest.cpp +68 -0
  240. package/external/folly/folly/chrono/test/ConvTest.cpp +652 -0
  241. package/external/folly/folly/concurrency/AtomicSharedPtr.h +387 -0
  242. package/external/folly/folly/concurrency/BUCK +170 -0
  243. package/external/folly/folly/concurrency/CacheLocality.h +460 -0
  244. package/external/folly/folly/concurrency/ConcurrentHashMap.h +822 -0
  245. package/external/folly/folly/concurrency/CoreCachedSharedPtr.h +232 -0
  246. package/external/folly/folly/concurrency/DeadlockDetector.cpp +27 -0
  247. package/external/folly/folly/concurrency/DeadlockDetector.h +44 -0
  248. package/external/folly/folly/concurrency/DynamicBoundedQueue.h +751 -0
  249. package/external/folly/folly/concurrency/PriorityUnboundedQueueSet.h +207 -0
  250. package/external/folly/folly/concurrency/ProcessLocalUniqueId.cpp +46 -0
  251. package/external/folly/folly/concurrency/ProcessLocalUniqueId.h +38 -0
  252. package/external/folly/folly/concurrency/SingletonRelaxedCounter.h +325 -0
  253. package/external/folly/folly/concurrency/ThreadCachedSynchronized.h +227 -0
  254. package/external/folly/folly/concurrency/UnboundedQueue.h +891 -0
  255. package/external/folly/folly/concurrency/container/BUCK +77 -0
  256. package/external/folly/folly/concurrency/container/FlatCombiningPriorityQueue.h +426 -0
  257. package/external/folly/folly/concurrency/container/LockFreeRingBuffer.h +306 -0
  258. package/external/folly/folly/concurrency/container/RelaxedConcurrentPriorityQueue.h +1212 -0
  259. package/external/folly/folly/concurrency/container/SingleWriterFixedHashMap.h +322 -0
  260. package/external/folly/folly/concurrency/container/atomic_grow_array.h +564 -0
  261. package/external/folly/folly/concurrency/container/test/BUCK +75 -0
  262. package/external/folly/folly/concurrency/container/test/FlatCombiningPriorityQueueTest.cpp +570 -0
  263. package/external/folly/folly/concurrency/container/test/LockFreeRingBufferTest.cpp +276 -0
  264. package/external/folly/folly/concurrency/container/test/RelaxedConcurrentPriorityQueueTest.cpp +1570 -0
  265. package/external/folly/folly/concurrency/container/test/SingleWriterFixedHashMapTest.cpp +401 -0
  266. package/external/folly/folly/concurrency/container/test/atomic_grow_array_test.cpp +187 -0
  267. package/external/folly/folly/concurrency/detail/AtomicSharedPtr-detail.h +212 -0
  268. package/external/folly/folly/concurrency/detail/ConcurrentHashMap-detail.h +1911 -0
  269. package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.cpp +43 -0
  270. package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.h +190 -0
  271. package/external/folly/folly/concurrency/memory/BUCK +53 -0
  272. package/external/folly/folly/concurrency/memory/PrimaryPtr.h +338 -0
  273. package/external/folly/folly/concurrency/memory/ReadMostlySharedPtr.h +511 -0
  274. package/external/folly/folly/concurrency/memory/TLRefCount.h +228 -0
  275. package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrBenchmark.cpp +56 -0
  276. package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrTest.cpp +454 -0
  277. package/external/folly/folly/concurrency/memory/test/BUCK +95 -0
  278. package/external/folly/folly/concurrency/memory/test/PrimaryPtrTest.cpp +303 -0
  279. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrBenchmark.cpp +138 -0
  280. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrStressTest.cpp +75 -0
  281. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrTest.cpp +378 -0
  282. package/external/folly/folly/concurrency/memory/test/RefCountBenchmark.cpp +90 -0
  283. package/external/folly/folly/concurrency/memory/test/RefCountTest.cpp +168 -0
  284. package/external/folly/folly/concurrency/test/AtomicSharedPtrCounted.h +156 -0
  285. package/external/folly/folly/concurrency/test/AtomicSharedPtrPerformance.cpp +255 -0
  286. package/external/folly/folly/concurrency/test/AtomicSharedPtrTest.cpp +257 -0
  287. package/external/folly/folly/concurrency/test/BUCK +229 -0
  288. package/external/folly/folly/concurrency/test/CacheLocalityBenchmark.cpp +392 -0
  289. package/external/folly/folly/concurrency/test/CacheLocalityTest.cpp +1229 -0
  290. package/external/folly/folly/concurrency/test/ConcurrentHashMapBench.cpp +260 -0
  291. package/external/folly/folly/concurrency/test/ConcurrentHashMapTest.cpp +1242 -0
  292. package/external/folly/folly/concurrency/test/CoreCachedSharedPtrTest.cpp +408 -0
  293. package/external/folly/folly/concurrency/test/DynamicBoundedQueueTest.cpp +984 -0
  294. package/external/folly/folly/concurrency/test/PriorityUnboundedQueueSetTest.cpp +73 -0
  295. package/external/folly/folly/concurrency/test/ProcessLocalUniqueIdTest.cpp +66 -0
  296. package/external/folly/folly/concurrency/test/SingletonRelaxedCounterBench.cpp +101 -0
  297. package/external/folly/folly/concurrency/test/SingletonRelaxedCounterTest.cpp +185 -0
  298. package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedBench.cpp +76 -0
  299. package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedTest.cpp +93 -0
  300. package/external/folly/folly/concurrency/test/UnboundedQueueTest.cpp +1302 -0
  301. package/external/folly/folly/container/Access.h +57 -0
  302. package/external/folly/folly/container/Array.h +87 -0
  303. package/external/folly/folly/container/BUCK +353 -0
  304. package/external/folly/folly/container/BitIterator.h +203 -0
  305. package/external/folly/folly/container/Enumerate.h +162 -0
  306. package/external/folly/folly/container/EvictingCacheMap.h +730 -0
  307. package/external/folly/folly/container/F14.md +300 -0
  308. package/external/folly/folly/container/F14Map-fwd.h +113 -0
  309. package/external/folly/folly/container/F14Map.h +2108 -0
  310. package/external/folly/folly/container/F14Set-fwd.h +95 -0
  311. package/external/folly/folly/container/F14Set.h +1603 -0
  312. package/external/folly/folly/container/FBVector.h +1711 -0
  313. package/external/folly/folly/container/Foreach-inl.h +316 -0
  314. package/external/folly/folly/container/Foreach.h +209 -0
  315. package/external/folly/folly/container/HeterogeneousAccess-fwd.h +33 -0
  316. package/external/folly/folly/container/HeterogeneousAccess.h +171 -0
  317. package/external/folly/folly/container/IntrusiveHeap.h +268 -0
  318. package/external/folly/folly/container/IntrusiveList.h +131 -0
  319. package/external/folly/folly/container/Iterator.h +843 -0
  320. package/external/folly/folly/container/MapUtil.h +376 -0
  321. package/external/folly/folly/container/Merge.h +90 -0
  322. package/external/folly/folly/container/RegexMatchCache.cpp +521 -0
  323. package/external/folly/folly/container/RegexMatchCache.h +699 -0
  324. package/external/folly/folly/container/Reserve.h +109 -0
  325. package/external/folly/folly/container/SparseByteSet.h +123 -0
  326. package/external/folly/folly/container/View.h +81 -0
  327. package/external/folly/folly/container/WeightedEvictingCacheMap.h +651 -0
  328. package/external/folly/folly/container/detail/BUCK +115 -0
  329. package/external/folly/folly/container/detail/BitIteratorDetail.h +87 -0
  330. package/external/folly/folly/container/detail/F14Defaults.h +34 -0
  331. package/external/folly/folly/container/detail/F14IntrinsicsAvailability.h +67 -0
  332. package/external/folly/folly/container/detail/F14MapFallback.h +717 -0
  333. package/external/folly/folly/container/detail/F14Mask.h +235 -0
  334. package/external/folly/folly/container/detail/F14Policy.h +1523 -0
  335. package/external/folly/folly/container/detail/F14SetFallback.h +528 -0
  336. package/external/folly/folly/container/detail/F14Table.cpp +71 -0
  337. package/external/folly/folly/container/detail/F14Table.h +2680 -0
  338. package/external/folly/folly/container/detail/Util.h +303 -0
  339. package/external/folly/folly/container/detail/tape_detail.h +135 -0
  340. package/external/folly/folly/container/detail/test/BUCK +14 -0
  341. package/external/folly/folly/container/detail/test/F14DetailTest.cpp +47 -0
  342. package/external/folly/folly/container/heap_vector_types.h +1683 -0
  343. package/external/folly/folly/container/range_traits.h +81 -0
  344. package/external/folly/folly/container/small_vector.h +1476 -0
  345. package/external/folly/folly/container/sorted_vector_types.h +1652 -0
  346. package/external/folly/folly/container/span.h +408 -0
  347. package/external/folly/folly/container/tape.h +608 -0
  348. package/external/folly/folly/container/test/.clang-tidy +12 -0
  349. package/external/folly/folly/container/test/AccessTest.cpp +138 -0
  350. package/external/folly/folly/container/test/ArrayTest.cpp +84 -0
  351. package/external/folly/folly/container/test/BUCK +568 -0
  352. package/external/folly/folly/container/test/BitIteratorBench.cpp +112 -0
  353. package/external/folly/folly/container/test/BitIteratorTest.cpp +109 -0
  354. package/external/folly/folly/container/test/EnumerateTest.cpp +294 -0
  355. package/external/folly/folly/container/test/EvictingCacheMapBench.cpp +80 -0
  356. package/external/folly/folly/container/test/EvictingCacheMapTest.cpp +842 -0
  357. package/external/folly/folly/container/test/F14AsanSupportTest.cpp +143 -0
  358. package/external/folly/folly/container/test/F14FwdTest.cpp +37 -0
  359. package/external/folly/folly/container/test/F14InterprocessTest.cpp +404 -0
  360. package/external/folly/folly/container/test/F14MapTest.cpp +2543 -0
  361. package/external/folly/folly/container/test/F14PolicyTest.cpp +49 -0
  362. package/external/folly/folly/container/test/F14SetTest.cpp +1738 -0
  363. package/external/folly/folly/container/test/F14SmallOverheads.cpp +215 -0
  364. package/external/folly/folly/container/test/F14TestUtil.h +117 -0
  365. package/external/folly/folly/container/test/FBVectorBenchmark.cpp +380 -0
  366. package/external/folly/folly/container/test/FBVectorBenchmarks.cpp.h +100 -0
  367. package/external/folly/folly/container/test/FBVectorTest.cpp +326 -0
  368. package/external/folly/folly/container/test/FBVectorTests.cpp.h +304 -0
  369. package/external/folly/folly/container/test/ForeachBenchmark.cpp +388 -0
  370. package/external/folly/folly/container/test/ForeachTest.cpp +338 -0
  371. package/external/folly/folly/container/test/HashMapsBench.cpp +458 -0
  372. package/external/folly/folly/container/test/HeterogeneousAccessTest.cpp +242 -0
  373. package/external/folly/folly/container/test/IntrusiveHeapTest.cpp +262 -0
  374. package/external/folly/folly/container/test/IteratorTest.cpp +989 -0
  375. package/external/folly/folly/container/test/MapUtilTest.cpp +365 -0
  376. package/external/folly/folly/container/test/MergeTest.cpp +66 -0
  377. package/external/folly/folly/container/test/RegexMatchCacheTest.cpp +634 -0
  378. package/external/folly/folly/container/test/ReserveTest.cpp +173 -0
  379. package/external/folly/folly/container/test/SparseByteSetBenchmark.cpp +153 -0
  380. package/external/folly/folly/container/test/SparseByteSetTest.cpp +117 -0
  381. package/external/folly/folly/container/test/TrackingTypes.h +584 -0
  382. package/external/folly/folly/container/test/UtilTest.cpp +609 -0
  383. package/external/folly/folly/container/test/WeightedEvictingCacheMapTest.cpp +800 -0
  384. package/external/folly/folly/container/test/heap_vector_types_test.cpp +1774 -0
  385. package/external/folly/folly/container/test/range_traits_test.cpp +59 -0
  386. package/external/folly/folly/container/test/small_vector_test.cpp +1571 -0
  387. package/external/folly/folly/container/test/sorted_vector_test.cpp +1589 -0
  388. package/external/folly/folly/container/test/span_test.cpp +520 -0
  389. package/external/folly/folly/container/test/tape_bench.cpp +200 -0
  390. package/external/folly/folly/container/test/tape_test.cpp +590 -0
  391. package/external/folly/folly/defs.bzl +238 -0
  392. package/external/folly/folly/detail/AsyncTrace.cpp +36 -0
  393. package/external/folly/folly/detail/AsyncTrace.h +44 -0
  394. package/external/folly/folly/detail/AtomicHashUtils.h +42 -0
  395. package/external/folly/folly/detail/AtomicUnorderedMapUtils.h +80 -0
  396. package/external/folly/folly/detail/BUCK +406 -0
  397. package/external/folly/folly/detail/DiscriminatedPtrDetail.h +172 -0
  398. package/external/folly/folly/detail/FileUtilDetail.cpp +63 -0
  399. package/external/folly/folly/detail/FileUtilDetail.h +85 -0
  400. package/external/folly/folly/detail/FileUtilVectorDetail.h +81 -0
  401. package/external/folly/folly/detail/FingerprintPolynomial.h +132 -0
  402. package/external/folly/folly/detail/Futex-inl.h +123 -0
  403. package/external/folly/folly/detail/Futex.cpp +273 -0
  404. package/external/folly/folly/detail/Futex.h +109 -0
  405. package/external/folly/folly/detail/GroupVarintDetail.h +101 -0
  406. package/external/folly/folly/detail/IPAddress.cpp +37 -0
  407. package/external/folly/folly/detail/IPAddress.h +57 -0
  408. package/external/folly/folly/detail/IPAddressSource.h +278 -0
  409. package/external/folly/folly/detail/Iterators.h +156 -0
  410. package/external/folly/folly/detail/MPMCPipelineDetail.h +122 -0
  411. package/external/folly/folly/detail/MemoryIdler.cpp +233 -0
  412. package/external/folly/folly/detail/MemoryIdler.h +216 -0
  413. package/external/folly/folly/detail/PerfScoped.cpp +112 -0
  414. package/external/folly/folly/detail/PerfScoped.h +70 -0
  415. package/external/folly/folly/detail/PolyDetail.h +921 -0
  416. package/external/folly/folly/detail/RangeCommon.cpp +55 -0
  417. package/external/folly/folly/detail/RangeCommon.h +93 -0
  418. package/external/folly/folly/detail/RangeSse42.cpp +198 -0
  419. package/external/folly/folly/detail/RangeSse42.h +30 -0
  420. package/external/folly/folly/detail/SimpleSimdStringUtils.cpp +31 -0
  421. package/external/folly/folly/detail/SimpleSimdStringUtils.h +27 -0
  422. package/external/folly/folly/detail/SimpleSimdStringUtilsImpl.h +63 -0
  423. package/external/folly/folly/detail/Singleton.h +34 -0
  424. package/external/folly/folly/detail/SlowFingerprint.h +90 -0
  425. package/external/folly/folly/detail/SocketFastOpen.cpp +175 -0
  426. package/external/folly/folly/detail/SocketFastOpen.h +89 -0
  427. package/external/folly/folly/detail/SplitStringSimd.cpp +84 -0
  428. package/external/folly/folly/detail/SplitStringSimd.h +151 -0
  429. package/external/folly/folly/detail/SplitStringSimdImpl.h +149 -0
  430. package/external/folly/folly/detail/Sse.cpp +35 -0
  431. package/external/folly/folly/detail/Sse.h +45 -0
  432. package/external/folly/folly/detail/StaticSingletonManager.cpp +119 -0
  433. package/external/folly/folly/detail/StaticSingletonManager.h +298 -0
  434. package/external/folly/folly/detail/ThreadLocalDetail.cpp +492 -0
  435. package/external/folly/folly/detail/ThreadLocalDetail.h +800 -0
  436. package/external/folly/folly/detail/TrapOnAvx512.cpp +41 -0
  437. package/external/folly/folly/detail/TrapOnAvx512.h +21 -0
  438. package/external/folly/folly/detail/TurnSequencer.h +295 -0
  439. package/external/folly/folly/detail/TypeList.h +551 -0
  440. package/external/folly/folly/detail/UniqueInstance.cpp +136 -0
  441. package/external/folly/folly/detail/UniqueInstance.h +68 -0
  442. package/external/folly/folly/detail/base64_detail/BUCK +102 -0
  443. package/external/folly/folly/detail/base64_detail/Base64Api.cpp +40 -0
  444. package/external/folly/folly/detail/base64_detail/Base64Api.h +101 -0
  445. package/external/folly/folly/detail/base64_detail/Base64Common.h +80 -0
  446. package/external/folly/folly/detail/base64_detail/Base64Constants.h +79 -0
  447. package/external/folly/folly/detail/base64_detail/Base64HiddenConstants.h +129 -0
  448. package/external/folly/folly/detail/base64_detail/Base64SWAR.cpp +161 -0
  449. package/external/folly/folly/detail/base64_detail/Base64SWAR.h +32 -0
  450. package/external/folly/folly/detail/base64_detail/Base64Scalar.h +262 -0
  451. package/external/folly/folly/detail/base64_detail/Base64Simd.h +102 -0
  452. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.cpp +42 -0
  453. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.h +33 -0
  454. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2_Platform.h +167 -0
  455. package/external/folly/folly/detail/base64_detail/README.md +392 -0
  456. package/external/folly/folly/detail/base64_detail/tests/BUCK +36 -0
  457. package/external/folly/folly/detail/base64_detail/tests/Base64AgainstScalarTest.cpp +141 -0
  458. package/external/folly/folly/detail/base64_detail/tests/Base64PlatformTest.cpp +273 -0
  459. package/external/folly/folly/detail/base64_detail/tests/Base64SpecialCasesTest.cpp +555 -0
  460. package/external/folly/folly/detail/test/AsyncTraceTest.cpp +43 -0
  461. package/external/folly/folly/detail/test/BUCK +118 -0
  462. package/external/folly/folly/detail/test/FileUtilDetailTest.cpp +56 -0
  463. package/external/folly/folly/detail/test/PerfScopedTest.cpp +107 -0
  464. package/external/folly/folly/detail/test/SimpleSimdStringUtilsTest.cpp +92 -0
  465. package/external/folly/folly/detail/test/SplitStringSimdTest.cpp +242 -0
  466. package/external/folly/folly/detail/test/StaticSingletonManagerTest.cpp +121 -0
  467. package/external/folly/folly/detail/test/ThreadLocalBenchmark.cpp +116 -0
  468. package/external/folly/folly/detail/test/ThreadLocalDetailTest.cpp +194 -0
  469. package/external/folly/folly/detail/test/TrapOnAvx512TestNegative.cpp +29 -0
  470. package/external/folly/folly/detail/test/UniqueInstanceTest.cpp +60 -0
  471. package/external/folly/folly/detail/thread_local_globals.cpp +69 -0
  472. package/external/folly/folly/detail/thread_local_globals.h +36 -0
  473. package/external/folly/folly/docs/AtomicHashMap.md +134 -0
  474. package/external/folly/folly/docs/Benchmark.md +310 -0
  475. package/external/folly/folly/docs/Conv.md +291 -0
  476. package/external/folly/folly/docs/Dynamic.md +220 -0
  477. package/external/folly/folly/docs/DynamicConverter.md +71 -0
  478. package/external/folly/folly/docs/Executors.md +63 -0
  479. package/external/folly/folly/docs/FBString.md +46 -0
  480. package/external/folly/folly/docs/FBVector.md +200 -0
  481. package/external/folly/folly/docs/Fbvector--graphical_solutions.png +0 -0
  482. package/external/folly/folly/docs/Format.md +177 -0
  483. package/external/folly/folly/docs/Function.md +92 -0
  484. package/external/folly/folly/docs/Futures.md +263 -0
  485. package/external/folly/folly/docs/GroupVarint.md +46 -0
  486. package/external/folly/folly/docs/Histogram.md +104 -0
  487. package/external/folly/folly/docs/MapUtils.md +80 -0
  488. package/external/folly/folly/docs/Overview.md +263 -0
  489. package/external/folly/folly/docs/PackedSyncPtr.md +77 -0
  490. package/external/folly/folly/docs/Poly.md +500 -0
  491. package/external/folly/folly/docs/ProducerConsumerQueue.md +82 -0
  492. package/external/folly/folly/docs/Rcu.md +218 -0
  493. package/external/folly/folly/docs/SmallLocks.md +24 -0
  494. package/external/folly/folly/docs/Synchronized.md +793 -0
  495. package/external/folly/folly/docs/ThreadCachedInt.md +98 -0
  496. package/external/folly/folly/docs/ThreadLocal.md +105 -0
  497. package/external/folly/folly/docs/Traits.md +161 -0
  498. package/external/folly/folly/docs/small_vector.md +64 -0
  499. package/external/folly/folly/docs/style.css +23 -0
  500. package/external/folly/folly/dynamic-inl.h +17 -0
  501. package/external/folly/folly/dynamic.h +17 -0
  502. package/external/folly/folly/folly_extended_library.bzl +28 -0
  503. package/external/folly/folly/functional/ApplyTuple.h +204 -0
  504. package/external/folly/folly/functional/BUCK +57 -0
  505. package/external/folly/folly/functional/Invoke.h +880 -0
  506. package/external/folly/folly/functional/Partial.h +130 -0
  507. package/external/folly/folly/functional/protocol.h +203 -0
  508. package/external/folly/folly/functional/test/ApplyTupleTest.cpp +549 -0
  509. package/external/folly/folly/functional/test/BUCK +57 -0
  510. package/external/folly/folly/functional/test/InvokeTest.cpp +483 -0
  511. package/external/folly/folly/functional/test/PartialTest.cpp +141 -0
  512. package/external/folly/folly/functional/test/protocol_test.cpp +177 -0
  513. package/external/folly/folly/functional/test/traits_test.cpp +551 -0
  514. package/external/folly/folly/functional/traits.h +675 -0
  515. package/external/folly/folly/hash/BUCK +86 -0
  516. package/external/folly/folly/hash/Checksum.cpp +275 -0
  517. package/external/folly/folly/hash/Checksum.h +94 -0
  518. package/external/folly/folly/hash/FarmHash.h +46 -0
  519. package/external/folly/folly/hash/Hash.h +1045 -0
  520. package/external/folly/folly/hash/MurmurHash.h +86 -0
  521. package/external/folly/folly/hash/SpookyHashV1.cpp +391 -0
  522. package/external/folly/folly/hash/SpookyHashV1.h +307 -0
  523. package/external/folly/folly/hash/SpookyHashV2.cpp +392 -0
  524. package/external/folly/folly/hash/SpookyHashV2.h +339 -0
  525. package/external/folly/folly/hash/detail/BUCK +26 -0
  526. package/external/folly/folly/hash/detail/ChecksumDetail.cpp +296 -0
  527. package/external/folly/folly/hash/detail/ChecksumDetail.h +137 -0
  528. package/external/folly/folly/hash/detail/Crc32CombineDetail.cpp +191 -0
  529. package/external/folly/folly/hash/detail/Crc32cDetail.cpp +303 -0
  530. package/external/folly/folly/hash/test/BUCK +132 -0
  531. package/external/folly/folly/hash/test/ChecksumBenchmark.cpp +91 -0
  532. package/external/folly/folly/hash/test/ChecksumTest.cpp +587 -0
  533. package/external/folly/folly/hash/test/FarmHashTest.cpp +41 -0
  534. package/external/folly/folly/hash/test/HashBenchmark.cpp +238 -0
  535. package/external/folly/folly/hash/test/HashTest.cpp +997 -0
  536. package/external/folly/folly/hash/test/MurmurHashTest.cpp +76 -0
  537. package/external/folly/folly/hash/test/SpookyHashV1Test.cpp +559 -0
  538. package/external/folly/folly/hash/test/SpookyHashV2Test.cpp +549 -0
  539. package/external/folly/folly/hash/test/traits_test.cpp +69 -0
  540. package/external/folly/folly/hash/traits.h +115 -0
  541. package/external/folly/folly/json/BUCK +155 -0
  542. package/external/folly/folly/json/DynamicConverter.h +464 -0
  543. package/external/folly/folly/json/DynamicParser-inl.h +316 -0
  544. package/external/folly/folly/json/DynamicParser.cpp +198 -0
  545. package/external/folly/folly/json/DynamicParser.h +394 -0
  546. package/external/folly/folly/json/JSONSchema.cpp +1030 -0
  547. package/external/folly/folly/json/JSONSchema.h +73 -0
  548. package/external/folly/folly/json/JsonMockUtil.h +73 -0
  549. package/external/folly/folly/json/JsonTestUtil.cpp +167 -0
  550. package/external/folly/folly/json/JsonTestUtil.h +88 -0
  551. package/external/folly/folly/json/bser/BUCK +24 -0
  552. package/external/folly/folly/json/bser/Bser.h +107 -0
  553. package/external/folly/folly/json/bser/Dump.cpp +253 -0
  554. package/external/folly/folly/json/bser/Load.cpp +246 -0
  555. package/external/folly/folly/json/bser/test/BUCK +14 -0
  556. package/external/folly/folly/json/bser/test/BserTest.cpp +149 -0
  557. package/external/folly/folly/json/dynamic.cpp +552 -0
  558. package/external/folly/folly/json/dynamic.h +1346 -0
  559. package/external/folly/folly/json/json.h +238 -0
  560. package/external/folly/folly/json/json_patch.cpp +325 -0
  561. package/external/folly/folly/json/json_patch.h +126 -0
  562. package/external/folly/folly/json/json_pointer.cpp +114 -0
  563. package/external/folly/folly/json/json_pointer.h +87 -0
  564. package/external/folly/folly/json/test/BUCK +147 -0
  565. package/external/folly/folly/json/test/DynamicBenchmark.cpp +146 -0
  566. package/external/folly/folly/json/test/DynamicConverterTest.cpp +518 -0
  567. package/external/folly/folly/json/test/DynamicOtherTest.cpp +344 -0
  568. package/external/folly/folly/json/test/DynamicParserTest.cpp +443 -0
  569. package/external/folly/folly/json/test/DynamicTest.cpp +1647 -0
  570. package/external/folly/folly/json/test/JSONSchemaTest.cpp +450 -0
  571. package/external/folly/folly/json/test/JsonBenchmark.cpp +264 -0
  572. package/external/folly/folly/json/test/JsonOtherTest.cpp +51 -0
  573. package/external/folly/folly/json/test/JsonTest.cpp +1153 -0
  574. package/external/folly/folly/json/test/JsonTestUtilTest.cpp +97 -0
  575. package/external/folly/folly/json/test/json_patch_test.cpp +361 -0
  576. package/external/folly/folly/json/test/json_pointer_test.cpp +58 -0
  577. package/external/folly/folly/json/tool/BUCK +13 -0
  578. package/external/folly/folly/json/tool/JSONSchemaTester.cpp +58 -0
  579. package/external/folly/folly/json.h +17 -0
  580. package/external/folly/folly/json_patch.h +17 -0
  581. package/external/folly/folly/json_pointer.h +17 -0
  582. package/external/folly/folly/lang/Access.h +29 -0
  583. package/external/folly/folly/lang/Align.h +240 -0
  584. package/external/folly/folly/lang/Aligned.h +92 -0
  585. package/external/folly/folly/lang/Assume.h +82 -0
  586. package/external/folly/folly/lang/BUCK +287 -0
  587. package/external/folly/folly/lang/Badge.h +108 -0
  588. package/external/folly/folly/lang/Bits.h +570 -0
  589. package/external/folly/folly/lang/BitsClass.h +312 -0
  590. package/external/folly/folly/lang/Builtin.h +74 -0
  591. package/external/folly/folly/lang/CArray.h +34 -0
  592. package/external/folly/folly/lang/CString.cpp +86 -0
  593. package/external/folly/folly/lang/CString.h +55 -0
  594. package/external/folly/folly/lang/Cast.h +51 -0
  595. package/external/folly/folly/lang/CheckedMath.h +253 -0
  596. package/external/folly/folly/lang/CustomizationPoint.h +58 -0
  597. package/external/folly/folly/lang/Exception.cpp +822 -0
  598. package/external/folly/folly/lang/Exception.h +716 -0
  599. package/external/folly/folly/lang/Extern.h +55 -0
  600. package/external/folly/folly/lang/Hint-inl.h +144 -0
  601. package/external/folly/folly/lang/Hint.h +238 -0
  602. package/external/folly/folly/lang/Keep.h +98 -0
  603. package/external/folly/folly/lang/New.h +124 -0
  604. package/external/folly/folly/lang/Ordering.h +140 -0
  605. package/external/folly/folly/lang/Pretty.h +159 -0
  606. package/external/folly/folly/lang/PropagateConst.h +413 -0
  607. package/external/folly/folly/lang/RValueReferenceWrapper.h +152 -0
  608. package/external/folly/folly/lang/SafeAssert.cpp +589 -0
  609. package/external/folly/folly/lang/StaticConst.h +33 -0
  610. package/external/folly/folly/lang/Thunk.h +100 -0
  611. package/external/folly/folly/lang/TypeInfo.h +58 -0
  612. package/external/folly/folly/lang/UncaughtExceptions.cpp +17 -0
  613. package/external/folly/folly/lang/UncaughtExceptions.h +19 -0
  614. package/external/folly/folly/lang/test/AlignTest.cpp +87 -0
  615. package/external/folly/folly/lang/test/AlignedTest.cpp +130 -0
  616. package/external/folly/folly/lang/test/BUCK +258 -0
  617. package/external/folly/folly/lang/test/BadgeTest.cpp +89 -0
  618. package/external/folly/folly/lang/test/BitsBenchmark.cpp +164 -0
  619. package/external/folly/folly/lang/test/BitsClassBenchmark.cpp +122 -0
  620. package/external/folly/folly/lang/test/BitsClassTest.cpp +379 -0
  621. package/external/folly/folly/lang/test/BitsTest.cpp +577 -0
  622. package/external/folly/folly/lang/test/CStringTest.cpp +60 -0
  623. package/external/folly/folly/lang/test/CastTest.cpp +47 -0
  624. package/external/folly/folly/lang/test/CheckedMathTest.cpp +394 -0
  625. package/external/folly/folly/lang/test/ExceptionBench.cpp +427 -0
  626. package/external/folly/folly/lang/test/ExceptionTest.cpp +413 -0
  627. package/external/folly/folly/lang/test/ExternTest.cpp +39 -0
  628. package/external/folly/folly/lang/test/HintTest.cpp +100 -0
  629. package/external/folly/folly/lang/test/NewTest.cpp +38 -0
  630. package/external/folly/folly/lang/test/OrderingTest.cpp +105 -0
  631. package/external/folly/folly/lang/test/PrettyTest.cpp +44 -0
  632. package/external/folly/folly/lang/test/PropagateConstTest.cpp +356 -0
  633. package/external/folly/folly/lang/test/RValueReferenceWrapperTest.cpp +85 -0
  634. package/external/folly/folly/lang/test/SafeAssertTest.cpp +75 -0
  635. package/external/folly/folly/lang/test/ThunkTest.cpp +105 -0
  636. package/external/folly/folly/lang/test/ToAsciiBench.cpp +466 -0
  637. package/external/folly/folly/lang/test/ToAsciiTest.cpp +266 -0
  638. package/external/folly/folly/lang/test/TypeInfoTest.cpp +56 -0
  639. package/external/folly/folly/memcpy.S +292 -0
  640. package/external/folly/folly/memcpy_select_aarch64.cpp +145 -0
  641. package/external/folly/folly/memory/Arena-inl.h +83 -0
  642. package/external/folly/folly/memory/Arena.h +325 -0
  643. package/external/folly/folly/memory/BUCK +191 -0
  644. package/external/folly/folly/memory/JemallocHugePageAllocator.cpp +449 -0
  645. package/external/folly/folly/memory/JemallocHugePageAllocator.h +105 -0
  646. package/external/folly/folly/memory/JemallocHugePageAllocatorTest.cpp +341 -0
  647. package/external/folly/folly/memory/JemallocNodumpAllocator.cpp +176 -0
  648. package/external/folly/folly/memory/JemallocNodumpAllocator.h +119 -0
  649. package/external/folly/folly/memory/JemallocNodumpAllocatorTest.cpp +61 -0
  650. package/external/folly/folly/memory/MallctlHelper.cpp +37 -0
  651. package/external/folly/folly/memory/MallctlHelper.h +167 -0
  652. package/external/folly/folly/memory/Malloc.h +551 -0
  653. package/external/folly/folly/memory/MemoryResource.h +57 -0
  654. package/external/folly/folly/memory/ReentrantAllocator.cpp +162 -0
  655. package/external/folly/folly/memory/ReentrantAllocator.h +261 -0
  656. package/external/folly/folly/memory/SanitizeAddress.cpp +75 -0
  657. package/external/folly/folly/memory/SanitizeAddress.h +117 -0
  658. package/external/folly/folly/memory/SanitizeLeak.cpp +119 -0
  659. package/external/folly/folly/memory/SanitizeLeak.h +108 -0
  660. package/external/folly/folly/memory/ThreadCachedArena.cpp +53 -0
  661. package/external/folly/folly/memory/ThreadCachedArena.h +90 -0
  662. package/external/folly/folly/memory/UninitializedMemoryHacks.h +426 -0
  663. package/external/folly/folly/memory/detail/BUCK +10 -0
  664. package/external/folly/folly/memory/detail/MallocImpl.cpp +52 -0
  665. package/external/folly/folly/memory/detail/MallocImpl.h +97 -0
  666. package/external/folly/folly/memory/not_null-inl.h +522 -0
  667. package/external/folly/folly/memory/not_null.h +449 -0
  668. package/external/folly/folly/memory/test/ArenaTest.cpp +354 -0
  669. package/external/folly/folly/memory/test/BUCK +146 -0
  670. package/external/folly/folly/memory/test/MallctlHelperTest.cpp +169 -0
  671. package/external/folly/folly/memory/test/MallocBenchmark.cpp +91 -0
  672. package/external/folly/folly/memory/test/MallocTest.cpp +78 -0
  673. package/external/folly/folly/memory/test/MemoryResourceTest.cpp +31 -0
  674. package/external/folly/folly/memory/test/ReentrantAllocatorTest.cpp +144 -0
  675. package/external/folly/folly/memory/test/SanitizeAddressTest.cpp +67 -0
  676. package/external/folly/folly/memory/test/SanitizeLeakTest.cpp +139 -0
  677. package/external/folly/folly/memory/test/ThreadCachedArenaTest.cpp +276 -0
  678. package/external/folly/folly/memory/test/UninitializedMemoryHacksODR.cpp +21 -0
  679. package/external/folly/folly/memory/test/UninitializedMemoryHacksTest.cpp +327 -0
  680. package/external/folly/folly/memory/test/not_null_test.cpp +608 -0
  681. package/external/folly/folly/memset.S +245 -0
  682. package/external/folly/folly/memset_select_aarch64.cpp +72 -0
  683. package/external/folly/folly/portability/Asm.h +50 -0
  684. package/external/folly/folly/portability/Atomic.h +31 -0
  685. package/external/folly/folly/portability/BUCK +456 -0
  686. package/external/folly/folly/portability/Builtins.cpp +31 -0
  687. package/external/folly/folly/portability/Builtins.h +161 -0
  688. package/external/folly/folly/portability/Config.h +43 -0
  689. package/external/folly/folly/portability/Constexpr.h +145 -0
  690. package/external/folly/folly/portability/Dirent.cpp +140 -0
  691. package/external/folly/folly/portability/Dirent.h +41 -0
  692. package/external/folly/folly/portability/Event.h +44 -0
  693. package/external/folly/folly/portability/Fcntl.cpp +120 -0
  694. package/external/folly/folly/portability/Fcntl.h +67 -0
  695. package/external/folly/folly/portability/Filesystem.cpp +67 -0
  696. package/external/folly/folly/portability/Filesystem.h +114 -0
  697. package/external/folly/folly/portability/FmtCompile.h +40 -0
  698. package/external/folly/folly/portability/GFlags.h +139 -0
  699. package/external/folly/folly/portability/GMock.h +35 -0
  700. package/external/folly/folly/portability/GTest.h +35 -0
  701. package/external/folly/folly/portability/IOVec.h +34 -0
  702. package/external/folly/folly/portability/Libgen.cpp +59 -0
  703. package/external/folly/folly/portability/Libgen.h +29 -0
  704. package/external/folly/folly/portability/Libunwind.h +21 -0
  705. package/external/folly/folly/portability/Malloc.cpp +31 -0
  706. package/external/folly/folly/portability/Malloc.h +53 -0
  707. package/external/folly/folly/portability/Math.h +90 -0
  708. package/external/folly/folly/portability/Memory.h +26 -0
  709. package/external/folly/folly/portability/OpenSSL.cpp +17 -0
  710. package/external/folly/folly/portability/OpenSSL.h +102 -0
  711. package/external/folly/folly/portability/PThread.cpp +697 -0
  712. package/external/folly/folly/portability/PThread.h +148 -0
  713. package/external/folly/folly/portability/README.md +21 -0
  714. package/external/folly/folly/portability/Sched.cpp +41 -0
  715. package/external/folly/folly/portability/Sched.h +45 -0
  716. package/external/folly/folly/portability/Sockets.cpp +245 -0
  717. package/external/folly/folly/portability/Sockets.h +155 -0
  718. package/external/folly/folly/portability/SourceLocation.h +49 -0
  719. package/external/folly/folly/portability/Stdio.cpp +77 -0
  720. package/external/folly/folly/portability/Stdio.h +32 -0
  721. package/external/folly/folly/portability/Stdlib.cpp +172 -0
  722. package/external/folly/folly/portability/Stdlib.h +64 -0
  723. package/external/folly/folly/portability/String.cpp +53 -0
  724. package/external/folly/folly/portability/String.h +39 -0
  725. package/external/folly/folly/portability/SysFile.cpp +46 -0
  726. package/external/folly/folly/portability/SysFile.h +27 -0
  727. package/external/folly/folly/portability/SysMembarrier.cpp +104 -0
  728. package/external/folly/folly/portability/SysMembarrier.h +26 -0
  729. package/external/folly/folly/portability/SysMman.cpp +242 -0
  730. package/external/folly/folly/portability/SysMman.h +68 -0
  731. package/external/folly/folly/portability/SysResource.cpp +108 -0
  732. package/external/folly/folly/portability/SysResource.h +71 -0
  733. package/external/folly/folly/portability/SysStat.cpp +66 -0
  734. package/external/folly/folly/portability/SysStat.h +52 -0
  735. package/external/folly/folly/portability/SysSyscall.h +73 -0
  736. package/external/folly/folly/portability/SysTime.cpp +62 -0
  737. package/external/folly/folly/portability/SysTime.h +50 -0
  738. package/external/folly/folly/portability/SysTypes.h +44 -0
  739. package/external/folly/folly/portability/SysUio.cpp +179 -0
  740. package/external/folly/folly/portability/SysUio.h +51 -0
  741. package/external/folly/folly/portability/Syslog.h +39 -0
  742. package/external/folly/folly/portability/Time.cpp +357 -0
  743. package/external/folly/folly/portability/Time.h +74 -0
  744. package/external/folly/folly/portability/Unistd.h +111 -0
  745. package/external/folly/folly/portability/Windows.h +108 -0
  746. package/external/folly/folly/portability/openat2.c +30 -0
  747. package/external/folly/folly/portability/openat2.h +39 -0
  748. package/external/folly/folly/portability/test/BUCK +59 -0
  749. package/external/folly/folly/portability/test/ConstexprTest.cpp +102 -0
  750. package/external/folly/folly/portability/test/FilesystemTest.cpp +35 -0
  751. package/external/folly/folly/portability/test/LibgenTest.cpp +35 -0
  752. package/external/folly/folly/portability/test/OpenSSLPortabilityTest.cpp +108 -0
  753. package/external/folly/folly/portability/test/PThreadTest.cpp +80 -0
  754. package/external/folly/folly/portability/test/TimeTest.cpp +90 -0
  755. package/external/folly/folly/small_vector.h +17 -0
  756. package/external/folly/folly/somerge_defs.bzl +399 -0
  757. package/external/folly/folly/sorted_vector_types.h +17 -0
  758. package/external/folly/folly/stop_watch.h +317 -0
  759. package/external/folly/folly/synchronization/AsymmetricThreadFence.cpp +91 -0
  760. package/external/folly/folly/synchronization/AsymmetricThreadFence.h +60 -0
  761. package/external/folly/folly/synchronization/AtomicNotification-inl.h +146 -0
  762. package/external/folly/folly/synchronization/AtomicNotification.cpp +34 -0
  763. package/external/folly/folly/synchronization/AtomicNotification.h +117 -0
  764. package/external/folly/folly/synchronization/AtomicRef.h +181 -0
  765. package/external/folly/folly/synchronization/AtomicStruct.h +150 -0
  766. package/external/folly/folly/synchronization/AtomicUtil-inl.h +482 -0
  767. package/external/folly/folly/synchronization/AtomicUtil.h +179 -0
  768. package/external/folly/folly/synchronization/BUCK +418 -0
  769. package/external/folly/folly/synchronization/Baton.h +419 -0
  770. package/external/folly/folly/synchronization/CallOnce.h +263 -0
  771. package/external/folly/folly/synchronization/DelayedInit.h +179 -0
  772. package/external/folly/folly/synchronization/DistributedMutex-inl.h +1744 -0
  773. package/external/folly/folly/synchronization/DistributedMutex.cpp +27 -0
  774. package/external/folly/folly/synchronization/DistributedMutex.h +342 -0
  775. package/external/folly/folly/synchronization/EventCount.h +200 -0
  776. package/external/folly/folly/synchronization/FlatCombining.h +629 -0
  777. package/external/folly/folly/synchronization/Hazptr-fwd.h +217 -0
  778. package/external/folly/folly/synchronization/Hazptr.cpp +36 -0
  779. package/external/folly/folly/synchronization/Hazptr.h +209 -0
  780. package/external/folly/folly/synchronization/HazptrDomain.cpp +68 -0
  781. package/external/folly/folly/synchronization/HazptrDomain.h +832 -0
  782. package/external/folly/folly/synchronization/HazptrHolder.h +431 -0
  783. package/external/folly/folly/synchronization/HazptrObj.h +533 -0
  784. package/external/folly/folly/synchronization/HazptrObjLinked.h +315 -0
  785. package/external/folly/folly/synchronization/HazptrRec.h +68 -0
  786. package/external/folly/folly/synchronization/HazptrThrLocal.h +180 -0
  787. package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.cpp +46 -0
  788. package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.h +25 -0
  789. package/external/folly/folly/synchronization/Latch.h +160 -0
  790. package/external/folly/folly/synchronization/LifoSem.h +767 -0
  791. package/external/folly/folly/synchronization/Lock.h +887 -0
  792. package/external/folly/folly/synchronization/MicroSpinLock.h +154 -0
  793. package/external/folly/folly/synchronization/NativeSemaphore.h +187 -0
  794. package/external/folly/folly/synchronization/ParkingLot.cpp +37 -0
  795. package/external/folly/folly/synchronization/ParkingLot.h +330 -0
  796. package/external/folly/folly/synchronization/PicoSpinLock.h +167 -0
  797. package/external/folly/folly/synchronization/RWSpinLock.h +549 -0
  798. package/external/folly/folly/synchronization/Rcu.cpp +26 -0
  799. package/external/folly/folly/synchronization/Rcu.h +553 -0
  800. package/external/folly/folly/synchronization/RelaxedAtomic.h +336 -0
  801. package/external/folly/folly/synchronization/SanitizeThread.cpp +141 -0
  802. package/external/folly/folly/synchronization/SanitizeThread.h +166 -0
  803. package/external/folly/folly/synchronization/SaturatingSemaphore.h +324 -0
  804. package/external/folly/folly/synchronization/SmallLocks.h +36 -0
  805. package/external/folly/folly/synchronization/ThrottledLifoSem.h +362 -0
  806. package/external/folly/folly/synchronization/WaitOptions.cpp +25 -0
  807. package/external/folly/folly/synchronization/WaitOptions.h +75 -0
  808. package/external/folly/folly/synchronization/detail/AtomicUtils.h +59 -0
  809. package/external/folly/folly/synchronization/detail/BUCK +104 -0
  810. package/external/folly/folly/synchronization/detail/Hardware.cpp +192 -0
  811. package/external/folly/folly/synchronization/detail/Hardware.h +75 -0
  812. package/external/folly/folly/synchronization/detail/HazptrUtils.h +339 -0
  813. package/external/folly/folly/synchronization/detail/InlineFunctionRef.h +229 -0
  814. package/external/folly/folly/synchronization/detail/Sleeper.cpp +27 -0
  815. package/external/folly/folly/synchronization/detail/Sleeper.h +62 -0
  816. package/external/folly/folly/synchronization/detail/Spin.h +96 -0
  817. package/external/folly/folly/synchronization/detail/ThreadCachedLists.h +174 -0
  818. package/external/folly/folly/synchronization/detail/ThreadCachedReaders.h +189 -0
  819. package/external/folly/folly/synchronization/detail/ThreadCachedTag.h +26 -0
  820. package/external/folly/folly/synchronization/detail/test/BUCK +28 -0
  821. package/external/folly/folly/synchronization/detail/test/HardwareTest.cpp +74 -0
  822. package/external/folly/folly/synchronization/detail/test/InlineFunctionRefTest.cpp +286 -0
  823. package/external/folly/folly/synchronization/example/BUCK +27 -0
  824. package/external/folly/folly/synchronization/example/HazptrLockFreeLIFO.h +88 -0
  825. package/external/folly/folly/synchronization/example/HazptrSWMRSet.h +133 -0
  826. package/external/folly/folly/synchronization/example/HazptrWideCAS.h +62 -0
  827. package/external/folly/folly/synchronization/test/AtomicNotificationTest.cpp +236 -0
  828. package/external/folly/folly/synchronization/test/AtomicRefTest.cpp +170 -0
  829. package/external/folly/folly/synchronization/test/AtomicStructTest.cpp +65 -0
  830. package/external/folly/folly/synchronization/test/AtomicUtilBench.cpp +457 -0
  831. package/external/folly/folly/synchronization/test/AtomicUtilTest.cpp +650 -0
  832. package/external/folly/folly/synchronization/test/BUCK +495 -0
  833. package/external/folly/folly/synchronization/test/Barrier.h +52 -0
  834. package/external/folly/folly/synchronization/test/BarrierTest.cpp +56 -0
  835. package/external/folly/folly/synchronization/test/BatonBenchmark.cpp +77 -0
  836. package/external/folly/folly/synchronization/test/BatonTest.cpp +164 -0
  837. package/external/folly/folly/synchronization/test/BatonTestHelpers.h +118 -0
  838. package/external/folly/folly/synchronization/test/CallOnceBenchmark.cpp +72 -0
  839. package/external/folly/folly/synchronization/test/CallOnceTest.cpp +153 -0
  840. package/external/folly/folly/synchronization/test/DelayedInitTest.cpp +281 -0
  841. package/external/folly/folly/synchronization/test/DistributedMutexTest.cpp +2074 -0
  842. package/external/folly/folly/synchronization/test/EventCountTest.cpp +124 -0
  843. package/external/folly/folly/synchronization/test/FlatCombiningBenchmark.cpp +1789 -0
  844. package/external/folly/folly/synchronization/test/FlatCombiningExamples.h +222 -0
  845. package/external/folly/folly/synchronization/test/FlatCombiningTest.cpp +121 -0
  846. package/external/folly/folly/synchronization/test/FlatCombiningTestHelpers.h +227 -0
  847. package/external/folly/folly/synchronization/test/HazptrTest.cpp +1689 -0
  848. package/external/folly/folly/synchronization/test/LatchTest.cpp +224 -0
  849. package/external/folly/folly/synchronization/test/LifoSemBench.cpp +185 -0
  850. package/external/folly/folly/synchronization/test/LifoSemTests.cpp +353 -0
  851. package/external/folly/folly/synchronization/test/LockTest.cpp +1239 -0
  852. package/external/folly/folly/synchronization/test/NativeSemaphoreTest.cpp +37 -0
  853. package/external/folly/folly/synchronization/test/ParkingLotBenchmark.cpp +239 -0
  854. package/external/folly/folly/synchronization/test/ParkingLotTest.cpp +170 -0
  855. package/external/folly/folly/synchronization/test/RWSpinLockTest.cpp +235 -0
  856. package/external/folly/folly/synchronization/test/RcuBench.cpp +66 -0
  857. package/external/folly/folly/synchronization/test/RcuTest.cpp +330 -0
  858. package/external/folly/folly/synchronization/test/RelaxedAtomicTest.cpp +389 -0
  859. package/external/folly/folly/synchronization/test/SaturatingSemaphoreTest.cpp +166 -0
  860. package/external/folly/folly/synchronization/test/Semaphore.h +242 -0
  861. package/external/folly/folly/synchronization/test/SemaphoreTest.cpp +271 -0
  862. package/external/folly/folly/synchronization/test/SmallLocksBenchmark.cpp +1296 -0
  863. package/external/folly/folly/synchronization/test/SmallLocksTest.cpp +510 -0
  864. package/external/folly/folly/synchronization/test/ThreadCachedEpochBench.h +67 -0
  865. package/external/folly/folly/synchronization/test/ThreadCachedReadersBench.cpp +42 -0
  866. package/external/folly/folly/synchronization/test/ThreadCachedReadersTest.cpp +52 -0
  867. package/external/folly/folly/synchronization/test/ThrottledLifoSemTest.cpp +243 -0
  868. package/external/folly/folly/system/AtFork.cpp +205 -0
  869. package/external/folly/folly/system/AtFork.h +116 -0
  870. package/external/folly/folly/system/AuxVector.h +198 -0
  871. package/external/folly/folly/system/BUCK +144 -0
  872. package/external/folly/folly/system/EnvUtil.cpp +93 -0
  873. package/external/folly/folly/system/EnvUtil.h +113 -0
  874. package/external/folly/folly/system/HardwareConcurrency.cpp +39 -0
  875. package/external/folly/folly/system/HardwareConcurrency.h +23 -0
  876. package/external/folly/folly/system/MemoryMapping.cpp +477 -0
  877. package/external/folly/folly/system/MemoryMapping.h +287 -0
  878. package/external/folly/folly/system/Pid.cpp +87 -0
  879. package/external/folly/folly/system/Pid.h +34 -0
  880. package/external/folly/folly/system/Shell.cpp +33 -0
  881. package/external/folly/folly/system/Shell.h +93 -0
  882. package/external/folly/folly/system/ThreadId.cpp +89 -0
  883. package/external/folly/folly/system/ThreadId.h +62 -0
  884. package/external/folly/folly/system/ThreadName.cpp +330 -0
  885. package/external/folly/folly/system/ThreadName.h +72 -0
  886. package/external/folly/folly/system/test/AtForkTest.cpp +309 -0
  887. package/external/folly/folly/system/test/AuxVectorTest.cpp +55 -0
  888. package/external/folly/folly/system/test/BUCK +120 -0
  889. package/external/folly/folly/system/test/EnvUtilSubprocess.cpp +26 -0
  890. package/external/folly/folly/system/test/EnvUtilTest.cpp +197 -0
  891. package/external/folly/folly/system/test/MemoryMappingTest.cpp +179 -0
  892. package/external/folly/folly/system/test/PidTest.cpp +46 -0
  893. package/external/folly/folly/system/test/ShellTest.cpp +66 -0
  894. package/external/folly/folly/system/test/ThreadIdTest.cpp +114 -0
  895. package/external/folly/folly/system/test/ThreadNameTest.cpp +85 -0
  896. package/external/folly/folly.vcxitems +164 -0
  897. package/external/folly/static/logo.svg +1 -0
  898. package/external/folly/sync-config.json +8 -0
  899. package/package.json +6 -6
  900. package/template/cpp-lib/proj/MyLib.sln +0 -33
  901. package/template/cs-lib/proj/MyLib.sln +0 -33
  902. package/templates/cpp-app/windows/MyApp.sln +0 -33
  903. package/templates/cpp-lib/example/metro.config.js +30 -4
  904. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  905. package/Folly/Folly.vcxproj +0 -378
  906. package/Folly/Folly.vcxproj.filters +0 -558
  907. package/fmt/fmt.vcxproj +0 -153
  908. package/fmt/fmt.vcxproj.filters +0 -59
  909. package/fmt/pch.cpp +0 -4
  910. package/fmt/pch.h +0 -2
  911. /package/{fmt → external/fmt}/cgmanifest.json +0 -0
  912. /package/{Folly → external/folly}/Folly.natvis +0 -0
  913. /package/{Folly → external/folly}/cgmanifest.json +0 -0
  914. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/ConstexprMath.h +0 -0
  915. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/Conv.cpp +0 -0
  916. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/chrono/Hardware.h +0 -0
  917. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/concurrency/CacheLocality.cpp +0 -0
  918. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/dynamic-inl.h +0 -0
  919. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/json.cpp +0 -0
  920. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/SafeAssert.h +0 -0
  921. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.cpp +0 -0
  922. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.h +0 -0
  923. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/portability/Unistd.cpp +0 -0
@@ -0,0 +1,1789 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #include <folly/Benchmark.h>
18
+ #include <folly/portability/GTest.h>
19
+ #include <folly/synchronization/test/FlatCombiningTestHelpers.h>
20
+
21
+ #include <glog/logging.h>
22
+
23
+ using namespace folly::test;
24
+
25
+ // use option --benchmark to run folly::Benchmark
26
+ // use option --direct to run direct benchmark measurements
27
+ DEFINE_bool(direct, false, "run direct measurement");
28
+ DEFINE_int32(reps, 10, "number of reps");
29
+ DEFINE_int32(ops, 100000, "number of operations per rep");
30
+ DEFINE_int32(lines, 5, "number of cache lines accessed per operation");
31
+ DEFINE_int32(numRecs, 8, "number of records");
32
+ DEFINE_int32(work, 1000, "amount of unrelated work per operation");
33
+
34
+ static std::vector<int> nthr = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64};
35
+ static int nthreads;
36
+ static bool fc;
37
+ static bool simple;
38
+ static bool dedicated;
39
+ static bool tc;
40
+ static bool syncops;
41
+
42
+ // baseline - no combining
43
+ BENCHMARK(no_combining_base, iters) {
44
+ fc = false;
45
+ dedicated = false;
46
+ tc = false;
47
+ syncops = false;
48
+ run_test(
49
+ nthreads,
50
+ FLAGS_lines,
51
+ FLAGS_numRecs,
52
+ FLAGS_work,
53
+ iters,
54
+ fc,
55
+ simple,
56
+ dedicated,
57
+ tc,
58
+ syncops);
59
+ }
60
+
61
+ BENCHMARK_RELATIVE(no_combining_dup, iters) {
62
+ run_test(
63
+ nthreads,
64
+ FLAGS_lines,
65
+ FLAGS_numRecs,
66
+ FLAGS_work,
67
+ iters,
68
+ fc,
69
+ simple,
70
+ dedicated,
71
+ tc,
72
+ syncops);
73
+ }
74
+ BENCHMARK_DRAW_LINE();
75
+
76
+ // dedicated combiner
77
+
78
+ BENCHMARK_DRAW_LINE();
79
+
80
+ BENCHMARK_RELATIVE(combining_dedicated_notc_sync, iters) {
81
+ fc = true;
82
+ dedicated = true;
83
+ tc = false;
84
+ syncops = true;
85
+ run_test(
86
+ nthreads,
87
+ FLAGS_lines,
88
+ FLAGS_numRecs,
89
+ FLAGS_work,
90
+ iters,
91
+ fc,
92
+ simple,
93
+ dedicated,
94
+ tc,
95
+ syncops);
96
+ }
97
+
98
+ BENCHMARK_RELATIVE(combining_dedicated_notc_sync_dup, iters) {
99
+ run_test(
100
+ nthreads,
101
+ FLAGS_lines,
102
+ FLAGS_numRecs,
103
+ FLAGS_work,
104
+ iters,
105
+ fc,
106
+ simple,
107
+ dedicated,
108
+ tc,
109
+ syncops);
110
+ }
111
+
112
+ BENCHMARK_DRAW_LINE();
113
+
114
+ BENCHMARK_RELATIVE(combining_dedicated_notc_async, iters) {
115
+ syncops = false;
116
+ run_test(
117
+ nthreads,
118
+ FLAGS_lines,
119
+ FLAGS_numRecs,
120
+ FLAGS_work,
121
+ iters,
122
+ fc,
123
+ simple,
124
+ dedicated,
125
+ tc,
126
+ syncops);
127
+ }
128
+
129
+ BENCHMARK_RELATIVE(combining_dedicated_notc_async_dup, iters) {
130
+ run_test(
131
+ nthreads,
132
+ FLAGS_lines,
133
+ FLAGS_numRecs,
134
+ FLAGS_work,
135
+ iters,
136
+ fc,
137
+ simple,
138
+ dedicated,
139
+ tc,
140
+ syncops);
141
+ }
142
+
143
+ BENCHMARK_DRAW_LINE();
144
+
145
+ BENCHMARK_RELATIVE(combining_dedicated_tc_sync, iters) {
146
+ tc = true;
147
+ syncops = true;
148
+ run_test(
149
+ nthreads,
150
+ FLAGS_lines,
151
+ FLAGS_numRecs,
152
+ FLAGS_work,
153
+ iters,
154
+ fc,
155
+ simple,
156
+ dedicated,
157
+ tc,
158
+ syncops);
159
+ }
160
+
161
+ BENCHMARK_RELATIVE(combining_dedicated_tc_sync_dup, iters) {
162
+ run_test(
163
+ nthreads,
164
+ FLAGS_lines,
165
+ FLAGS_numRecs,
166
+ FLAGS_work,
167
+ iters,
168
+ fc,
169
+ simple,
170
+ dedicated,
171
+ tc,
172
+ syncops);
173
+ }
174
+
175
+ BENCHMARK_DRAW_LINE();
176
+
177
+ BENCHMARK_RELATIVE(combining_dedicated_tc_async, iters) {
178
+ tc = true;
179
+ syncops = false;
180
+ run_test(
181
+ nthreads,
182
+ FLAGS_lines,
183
+ FLAGS_numRecs,
184
+ FLAGS_work,
185
+ iters,
186
+ fc,
187
+ simple,
188
+ dedicated,
189
+ tc,
190
+ syncops);
191
+ }
192
+
193
+ BENCHMARK_RELATIVE(combining_dedicated_tc_async_dup, iters) {
194
+ run_test(
195
+ nthreads,
196
+ FLAGS_lines,
197
+ FLAGS_numRecs,
198
+ FLAGS_work,
199
+ iters,
200
+ fc,
201
+ simple,
202
+ dedicated,
203
+ tc,
204
+ syncops);
205
+ }
206
+
207
+ BENCHMARK_DRAW_LINE();
208
+
209
+ // no dedicated combiner
210
+
211
+ BENCHMARK_DRAW_LINE();
212
+
213
+ BENCHMARK_RELATIVE(combining_no_dedicated_notc_sync, iters) {
214
+ dedicated = false;
215
+ tc = false;
216
+ syncops = true;
217
+ run_test(
218
+ nthreads,
219
+ FLAGS_lines,
220
+ FLAGS_numRecs,
221
+ FLAGS_work,
222
+ iters,
223
+ fc,
224
+ simple,
225
+ dedicated,
226
+ tc,
227
+ syncops);
228
+ }
229
+
230
+ BENCHMARK_RELATIVE(combining_no_dedicated_notc_sync_dup, iters) {
231
+ run_test(
232
+ nthreads,
233
+ FLAGS_lines,
234
+ FLAGS_numRecs,
235
+ FLAGS_work,
236
+ iters,
237
+ fc,
238
+ simple,
239
+ dedicated,
240
+ tc,
241
+ syncops);
242
+ }
243
+
244
+ BENCHMARK_DRAW_LINE();
245
+
246
+ BENCHMARK_RELATIVE(combining_no_dedicated_notc_async, iters) {
247
+ syncops = false;
248
+ run_test(
249
+ nthreads,
250
+ FLAGS_lines,
251
+ FLAGS_numRecs,
252
+ FLAGS_work,
253
+ iters,
254
+ fc,
255
+ simple,
256
+ dedicated,
257
+ tc,
258
+ syncops);
259
+ }
260
+
261
+ BENCHMARK_RELATIVE(combining_no_dedicated_notc_async_dup, iters) {
262
+ run_test(
263
+ nthreads,
264
+ FLAGS_lines,
265
+ FLAGS_numRecs,
266
+ FLAGS_work,
267
+ iters,
268
+ fc,
269
+ simple,
270
+ dedicated,
271
+ tc,
272
+ syncops);
273
+ }
274
+
275
+ BENCHMARK_DRAW_LINE();
276
+
277
+ BENCHMARK_RELATIVE(combining_no_dedicated_tc_sync, iters) {
278
+ tc = true;
279
+ syncops = true;
280
+ run_test(
281
+ nthreads,
282
+ FLAGS_lines,
283
+ FLAGS_numRecs,
284
+ FLAGS_work,
285
+ iters,
286
+ fc,
287
+ simple,
288
+ dedicated,
289
+ tc,
290
+ syncops);
291
+ }
292
+
293
+ BENCHMARK_RELATIVE(combining_no_dedicated_tc_sync_dup, iters) {
294
+ run_test(
295
+ nthreads,
296
+ FLAGS_lines,
297
+ FLAGS_numRecs,
298
+ FLAGS_work,
299
+ iters,
300
+ fc,
301
+ simple,
302
+ dedicated,
303
+ tc,
304
+ syncops);
305
+ }
306
+
307
+ BENCHMARK_DRAW_LINE();
308
+
309
+ BENCHMARK_RELATIVE(combining_no_dedicated_tc_async, iters) {
310
+ tc = true;
311
+ syncops = false;
312
+ run_test(
313
+ nthreads,
314
+ FLAGS_lines,
315
+ FLAGS_numRecs,
316
+ FLAGS_work,
317
+ iters,
318
+ fc,
319
+ simple,
320
+ dedicated,
321
+ tc,
322
+ syncops);
323
+ }
324
+
325
+ BENCHMARK_RELATIVE(combining_no_dedicated_tc_async_dup, iters) {
326
+ run_test(
327
+ nthreads,
328
+ FLAGS_lines,
329
+ FLAGS_numRecs,
330
+ FLAGS_work,
331
+ iters,
332
+ fc,
333
+ simple,
334
+ dedicated,
335
+ tc,
336
+ syncops);
337
+ }
338
+
339
+ BENCHMARK_DRAW_LINE();
340
+
341
+ void benchmarkSetup() {
342
+ int numCores = std::thread::hardware_concurrency();
343
+ std::cout << "\nRunning benchmarks on machine with " << numCores
344
+ << " logical cores" << std::endl;
345
+ }
346
+
347
+ TEST(FlatCombining, follyBenchmark) {
348
+ if (FLAGS_benchmark) {
349
+ benchmarkSetup();
350
+ for (bool b : {true, false}) {
351
+ simple = b;
352
+ std::string str = simple ? "simple" : "custom";
353
+ std::cout << "\n------------------------------------ " << str
354
+ << " interface" << std::endl;
355
+ for (int i : nthr) {
356
+ std::cout << "\n---------------------------------- Number of threads = "
357
+ << i << std::endl;
358
+ nthreads = i;
359
+ folly::runBenchmarks();
360
+ }
361
+ }
362
+ }
363
+ }
364
+
365
+ // Direct measurement - not using folly::Benchmark
366
+
367
+ static uint64_t test(
368
+ std::string name,
369
+ bool fc_,
370
+ bool dedicated_,
371
+ bool tc_,
372
+ bool syncops_,
373
+ uint64_t base) {
374
+ uint64_t min = UINTMAX_MAX;
375
+ uint64_t max = 0;
376
+ uint64_t sum = 0;
377
+
378
+ for (int i = 0; i < FLAGS_reps; ++i) {
379
+ uint64_t dur = run_test(
380
+ nthreads,
381
+ FLAGS_lines,
382
+ FLAGS_numRecs,
383
+ FLAGS_work,
384
+ FLAGS_ops,
385
+ fc_,
386
+ simple,
387
+ dedicated_,
388
+ tc_,
389
+ syncops_);
390
+ sum += dur;
391
+ min = std::min(min, dur);
392
+ max = std::max(max, dur);
393
+ }
394
+ uint64_t avg = sum / FLAGS_reps;
395
+
396
+ uint64_t res = min;
397
+ std::cout << name;
398
+ std::cout << " " << std::setw(4) << max / FLAGS_ops << " ns";
399
+ std::cout << " " << std::setw(4) << avg / FLAGS_ops << " ns";
400
+ std::cout << " " << std::setw(4) << res / FLAGS_ops << " ns";
401
+ if (base) {
402
+ std::cout << " " << std::setw(3) << 100 * base / res << "%";
403
+ }
404
+ std::cout << std::endl;
405
+ return res;
406
+ }
407
+
408
+ TEST(FlatCombining, directMeasurement) {
409
+ if (!FLAGS_direct) {
410
+ return;
411
+ }
412
+ benchmarkSetup();
413
+ simple = false;
414
+ std::string str = simple ? "simple" : "custom";
415
+ std::cout << "\n------------------------------------ " << str << " interface"
416
+ << std::endl;
417
+ for (int i : nthr) {
418
+ nthreads = i;
419
+ std::cout << "\n------------------------------------ Number of threads = "
420
+ << i << "\n"
421
+ << std::endl;
422
+ std::cout << "Test_name, Max time, Avg time, Min time, % base min / min\n"
423
+ << std::endl;
424
+
425
+ uint64_t base =
426
+ test("no_combining - base ", false, false, false, false, 0);
427
+ test("no_combining - dup ", false, false, false, false, base);
428
+ std::cout << "---------------------------------------" << std::endl;
429
+
430
+ std::cout << "---- dedicated-------------------------" << std::endl;
431
+ test("combining_notc_sync ", true, true, false, true, base);
432
+ test("combining_notc_sync - dup ", true, true, false, true, base);
433
+ std::cout << "---------------------------------------" << std::endl;
434
+ test("combining_notc_async ", true, true, false, false, base);
435
+ test("combining_notc_async - dup ", true, true, false, false, base);
436
+ std::cout << "---------------------------------------" << std::endl;
437
+ test("combining_tc_sync ", true, true, true, true, base);
438
+ test("combining_tc_sync - dup ", true, true, true, true, base);
439
+ std::cout << "---------------------------------------" << std::endl;
440
+ test("combining_tc_async ", true, true, true, false, base);
441
+ test("combining_tc_async - dup ", true, true, true, false, base);
442
+ std::cout << "---------------------------------------" << std::endl;
443
+
444
+ std::cout << "---- no dedicated----------------------" << std::endl;
445
+ test("combining_notc_sync ", true, false, false, true, base);
446
+ test("combining_notc_sync - dup ", true, false, false, true, base);
447
+ std::cout << "---------------------------------------" << std::endl;
448
+ test("combining_notc_async ", true, false, false, false, base);
449
+ test("combining_notc_async - dup ", true, false, false, false, base);
450
+ std::cout << "---------------------------------------" << std::endl;
451
+ test("combining_tc_sync ", true, false, true, true, base);
452
+ test("combining_tc_sync - dup ", true, false, true, true, base);
453
+ std::cout << "---------------------------------------" << std::endl;
454
+ test("combining_tc_async ", true, false, true, false, base);
455
+ test("combining_tc_async - dup ", true, false, true, false, base);
456
+ std::cout << "---------------------------------------" << std::endl;
457
+ }
458
+ }
459
+
460
+ // clang-format off
461
+ /*
462
+ See benchmark results in https://phabricator.intern.facebook.com/P57204895
463
+
464
+ The results are from a run using the command
465
+ $ numactl -N 1 flat_combining_benchmark --benchmark --bm_min_iters=100000 --direct
466
+
467
+ Using the default parameters of the benchmark: In each iteration, the
468
+ operation on the shared data structure updates 5 cache lines and
469
+ performs unrelated work (~300ns) after each operation. The benchmark
470
+ doesn't do any smart combining (i.e., saving or dropping some work
471
+ based on understanding the details of the combined operations).
472
+
473
+ Direct measurements are used to evaluate the high variance in some cases.
474
+ Duplicate runs are included in order to assess the relevance of outliers.
475
+
476
+ ----
477
+ [==========] Running 2 tests from 1 test case.
478
+ [----------] Global test environment set-up.
479
+ [----------] 2 tests from FlatCombining
480
+ [ RUN ] FlatCombining.folly_benchmark
481
+
482
+ Running benchmarks on machine with 32 logical cores
483
+
484
+ ------------------------------------ simple interface
485
+
486
+ ---------------------------------- Number of threads = 1
487
+ ============================================================================
488
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
489
+ ============================================================================
490
+ no_combining_base 330.43ns 3.03M
491
+ no_combining_dup 100.09% 330.13ns 3.03M
492
+ ----------------------------------------------------------------------------
493
+ ----------------------------------------------------------------------------
494
+ combining_dedicated_notc_sync 93.17% 354.66ns 2.82M
495
+ combining_dedicated_notc_sync_dup 93.57% 353.15ns 2.83M
496
+ ----------------------------------------------------------------------------
497
+ combining_dedicated_notc_async 99.35% 332.60ns 3.01M
498
+ combining_dedicated_notc_async_dup 99.07% 333.54ns 3.00M
499
+ ----------------------------------------------------------------------------
500
+ combining_dedicated_tc_sync 93.05% 355.13ns 2.82M
501
+ combining_dedicated_tc_sync_dup 92.87% 355.81ns 2.81M
502
+ ----------------------------------------------------------------------------
503
+ combining_dedicated_tc_async 99.17% 333.21ns 3.00M
504
+ combining_dedicated_tc_async_dup 99.28% 332.84ns 3.00M
505
+ ----------------------------------------------------------------------------
506
+ ----------------------------------------------------------------------------
507
+ combining_no_dedicated_notc_sync 93.51% 353.38ns 2.83M
508
+ combining_no_dedicated_notc_sync_dup 93.27% 354.26ns 2.82M
509
+ ----------------------------------------------------------------------------
510
+ combining_no_dedicated_notc_async 99.40% 332.44ns 3.01M
511
+ combining_no_dedicated_notc_async_dup 99.13% 333.34ns 3.00M
512
+ ----------------------------------------------------------------------------
513
+ combining_no_dedicated_tc_sync 93.38% 353.86ns 2.83M
514
+ combining_no_dedicated_tc_sync_dup 93.52% 353.31ns 2.83M
515
+ ----------------------------------------------------------------------------
516
+ combining_no_dedicated_tc_async 99.29% 332.78ns 3.00M
517
+ combining_no_dedicated_tc_async_dup 99.19% 333.11ns 3.00M
518
+ ----------------------------------------------------------------------------
519
+ ============================================================================
520
+
521
+ ---------------------------------- Number of threads = 2
522
+ ============================================================================
523
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
524
+ ============================================================================
525
+ no_combining_base 213.60ns 4.68M
526
+ no_combining_dup 100.84% 211.82ns 4.72M
527
+ ----------------------------------------------------------------------------
528
+ ----------------------------------------------------------------------------
529
+ combining_dedicated_notc_sync 89.84% 237.76ns 4.21M
530
+ combining_dedicated_notc_sync_dup 89.85% 237.73ns 4.21M
531
+ ----------------------------------------------------------------------------
532
+ combining_dedicated_notc_async 93.80% 227.72ns 4.39M
533
+ combining_dedicated_notc_async_dup 87.85% 243.15ns 4.11M
534
+ ----------------------------------------------------------------------------
535
+ combining_dedicated_tc_sync 86.81% 246.06ns 4.06M
536
+ combining_dedicated_tc_sync_dup 87.15% 245.09ns 4.08M
537
+ ----------------------------------------------------------------------------
538
+ combining_dedicated_tc_async 92.14% 231.82ns 4.31M
539
+ combining_dedicated_tc_async_dup 92.04% 232.08ns 4.31M
540
+ ----------------------------------------------------------------------------
541
+ ----------------------------------------------------------------------------
542
+ combining_no_dedicated_notc_sync 95.20% 224.36ns 4.46M
543
+ combining_no_dedicated_notc_sync_dup 95.40% 223.91ns 4.47M
544
+ ----------------------------------------------------------------------------
545
+ combining_no_dedicated_notc_async 95.41% 223.89ns 4.47M
546
+ combining_no_dedicated_notc_async_dup 95.86% 222.82ns 4.49M
547
+ ----------------------------------------------------------------------------
548
+ combining_no_dedicated_tc_sync 94.43% 226.21ns 4.42M
549
+ combining_no_dedicated_tc_sync_dup 94.28% 226.56ns 4.41M
550
+ ----------------------------------------------------------------------------
551
+ combining_no_dedicated_tc_async 96.62% 221.07ns 4.52M
552
+ combining_no_dedicated_tc_async_dup 97.24% 219.66ns 4.55M
553
+ ----------------------------------------------------------------------------
554
+ ============================================================================
555
+
556
+ ---------------------------------- Number of threads = 3
557
+ ============================================================================
558
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
559
+ ============================================================================
560
+ no_combining_base 188.20ns 5.31M
561
+ no_combining_dup 94.07% 200.07ns 5.00M
562
+ ----------------------------------------------------------------------------
563
+ ----------------------------------------------------------------------------
564
+ combining_dedicated_notc_sync 95.39% 197.30ns 5.07M
565
+ combining_dedicated_notc_sync_dup 94.50% 199.16ns 5.02M
566
+ ----------------------------------------------------------------------------
567
+ combining_dedicated_notc_async 75.29% 249.96ns 4.00M
568
+ combining_dedicated_notc_async_dup 72.97% 257.91ns 3.88M
569
+ ----------------------------------------------------------------------------
570
+ combining_dedicated_tc_sync 91.26% 206.22ns 4.85M
571
+ combining_dedicated_tc_sync_dup 90.68% 207.54ns 4.82M
572
+ ----------------------------------------------------------------------------
573
+ combining_dedicated_tc_async 89.64% 209.95ns 4.76M
574
+ combining_dedicated_tc_async_dup 88.21% 213.36ns 4.69M
575
+ ----------------------------------------------------------------------------
576
+ ----------------------------------------------------------------------------
577
+ combining_no_dedicated_notc_sync 96.19% 195.66ns 5.11M
578
+ combining_no_dedicated_notc_sync_dup 93.27% 201.78ns 4.96M
579
+ ----------------------------------------------------------------------------
580
+ combining_no_dedicated_notc_async 81.12% 231.99ns 4.31M
581
+ combining_no_dedicated_notc_async_dup 82.48% 228.19ns 4.38M
582
+ ----------------------------------------------------------------------------
583
+ combining_no_dedicated_tc_sync 79.48% 236.78ns 4.22M
584
+ combining_no_dedicated_tc_sync_dup 79.73% 236.04ns 4.24M
585
+ ----------------------------------------------------------------------------
586
+ combining_no_dedicated_tc_async 100.70% 186.90ns 5.35M
587
+ combining_no_dedicated_tc_async_dup 99.43% 189.27ns 5.28M
588
+ ----------------------------------------------------------------------------
589
+ ============================================================================
590
+
591
+ ---------------------------------- Number of threads = 4
592
+ ============================================================================
593
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
594
+ ============================================================================
595
+ no_combining_base 242.84ns 4.12M
596
+ no_combining_dup 100.78% 240.96ns 4.15M
597
+ ----------------------------------------------------------------------------
598
+ ----------------------------------------------------------------------------
599
+ combining_dedicated_notc_sync 100.91% 240.65ns 4.16M
600
+ combining_dedicated_notc_sync_dup 99.76% 243.42ns 4.11M
601
+ ----------------------------------------------------------------------------
602
+ combining_dedicated_notc_async 102.06% 237.95ns 4.20M
603
+ combining_dedicated_notc_async_dup 101.63% 238.94ns 4.19M
604
+ ----------------------------------------------------------------------------
605
+ combining_dedicated_tc_sync 109.79% 221.18ns 4.52M
606
+ combining_dedicated_tc_sync_dup 108.94% 222.92ns 4.49M
607
+ ----------------------------------------------------------------------------
608
+ combining_dedicated_tc_async 133.01% 182.58ns 5.48M
609
+ combining_dedicated_tc_async_dup 134.91% 180.00ns 5.56M
610
+ ----------------------------------------------------------------------------
611
+ ----------------------------------------------------------------------------
612
+ combining_no_dedicated_notc_sync 108.77% 223.25ns 4.48M
613
+ combining_no_dedicated_notc_sync_dup 107.64% 225.61ns 4.43M
614
+ ----------------------------------------------------------------------------
615
+ combining_no_dedicated_notc_async 115.14% 210.91ns 4.74M
616
+ combining_no_dedicated_notc_async_dup 115.06% 211.05ns 4.74M
617
+ ----------------------------------------------------------------------------
618
+ combining_no_dedicated_tc_sync 116.36% 208.70ns 4.79M
619
+ combining_no_dedicated_tc_sync_dup 115.70% 209.89ns 4.76M
620
+ ----------------------------------------------------------------------------
621
+ combining_no_dedicated_tc_async 159.69% 152.07ns 6.58M
622
+ combining_no_dedicated_tc_async_dup 158.27% 153.43ns 6.52M
623
+ ----------------------------------------------------------------------------
624
+ ============================================================================
625
+
626
+ ---------------------------------- Number of threads = 6
627
+ ============================================================================
628
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
629
+ ============================================================================
630
+ no_combining_base 281.36ns 3.55M
631
+ no_combining_dup 98.56% 285.46ns 3.50M
632
+ ----------------------------------------------------------------------------
633
+ ----------------------------------------------------------------------------
634
+ combining_dedicated_notc_sync 132.39% 212.51ns 4.71M
635
+ combining_dedicated_notc_sync_dup 133.10% 211.38ns 4.73M
636
+ ----------------------------------------------------------------------------
637
+ combining_dedicated_notc_async 141.35% 199.05ns 5.02M
638
+ combining_dedicated_notc_async_dup 143.18% 196.51ns 5.09M
639
+ ----------------------------------------------------------------------------
640
+ combining_dedicated_tc_sync 138.94% 202.50ns 4.94M
641
+ combining_dedicated_tc_sync_dup 138.64% 202.93ns 4.93M
642
+ ----------------------------------------------------------------------------
643
+ combining_dedicated_tc_async 199.76% 140.85ns 7.10M
644
+ combining_dedicated_tc_async_dup 200.28% 140.48ns 7.12M
645
+ ----------------------------------------------------------------------------
646
+ ----------------------------------------------------------------------------
647
+ combining_no_dedicated_notc_sync 155.48% 180.96ns 5.53M
648
+ combining_no_dedicated_notc_sync_dup 150.82% 186.55ns 5.36M
649
+ ----------------------------------------------------------------------------
650
+ combining_no_dedicated_notc_async 162.23% 173.43ns 5.77M
651
+ combining_no_dedicated_notc_async_dup 161.33% 174.39ns 5.73M
652
+ ----------------------------------------------------------------------------
653
+ combining_no_dedicated_tc_sync 167.90% 167.57ns 5.97M
654
+ combining_no_dedicated_tc_sync_dup 164.84% 170.69ns 5.86M
655
+ ----------------------------------------------------------------------------
656
+ combining_no_dedicated_tc_async 242.51% 116.02ns 8.62M
657
+ combining_no_dedicated_tc_async_dup 245.67% 114.53ns 8.73M
658
+ ----------------------------------------------------------------------------
659
+ ============================================================================
660
+
661
+ ---------------------------------- Number of threads = 8
662
+ ============================================================================
663
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
664
+ ============================================================================
665
+ no_combining_base 315.57ns 3.17M
666
+ no_combining_dup 98.83% 319.32ns 3.13M
667
+ ----------------------------------------------------------------------------
668
+ ----------------------------------------------------------------------------
669
+ combining_dedicated_notc_sync 170.48% 185.11ns 5.40M
670
+ combining_dedicated_notc_sync_dup 174.57% 180.77ns 5.53M
671
+ ----------------------------------------------------------------------------
672
+ combining_dedicated_notc_async 178.57% 176.72ns 5.66M
673
+ combining_dedicated_notc_async_dup 181.30% 174.06ns 5.75M
674
+ ----------------------------------------------------------------------------
675
+ combining_dedicated_tc_sync 195.40% 161.50ns 6.19M
676
+ combining_dedicated_tc_sync_dup 197.18% 160.05ns 6.25M
677
+ ----------------------------------------------------------------------------
678
+ combining_dedicated_tc_async 322.03% 97.99ns 10.20M
679
+ combining_dedicated_tc_async_dup 324.51% 97.24ns 10.28M
680
+ ----------------------------------------------------------------------------
681
+ ----------------------------------------------------------------------------
682
+ combining_no_dedicated_notc_sync 205.61% 153.48ns 6.52M
683
+ combining_no_dedicated_notc_sync_dup 204.94% 153.98ns 6.49M
684
+ ----------------------------------------------------------------------------
685
+ combining_no_dedicated_notc_async 217.81% 144.88ns 6.90M
686
+ combining_no_dedicated_notc_async_dup 218.58% 144.37ns 6.93M
687
+ ----------------------------------------------------------------------------
688
+ combining_no_dedicated_tc_sync 223.96% 140.91ns 7.10M
689
+ combining_no_dedicated_tc_sync_dup 224.55% 140.53ns 7.12M
690
+ ----------------------------------------------------------------------------
691
+ combining_no_dedicated_tc_async 364.58% 86.56ns 11.55M
692
+ combining_no_dedicated_tc_async_dup 363.33% 86.86ns 11.51M
693
+ ----------------------------------------------------------------------------
694
+ ============================================================================
695
+
696
+ ---------------------------------- Number of threads = 12
697
+ ============================================================================
698
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
699
+ ============================================================================
700
+ no_combining_base 353.59ns 2.83M
701
+ no_combining_dup 99.91% 353.91ns 2.83M
702
+ ----------------------------------------------------------------------------
703
+ ----------------------------------------------------------------------------
704
+ combining_dedicated_notc_sync 276.36% 127.95ns 7.82M
705
+ combining_dedicated_notc_sync_dup 278.88% 126.79ns 7.89M
706
+ ----------------------------------------------------------------------------
707
+ combining_dedicated_notc_async 249.52% 141.71ns 7.06M
708
+ combining_dedicated_notc_async_dup 247.26% 143.00ns 6.99M
709
+ ----------------------------------------------------------------------------
710
+ combining_dedicated_tc_sync 318.57% 110.99ns 9.01M
711
+ combining_dedicated_tc_sync_dup 326.27% 108.37ns 9.23M
712
+ ----------------------------------------------------------------------------
713
+ combining_dedicated_tc_async 428.50% 82.52ns 12.12M
714
+ combining_dedicated_tc_async_dup 429.19% 82.39ns 12.14M
715
+ ----------------------------------------------------------------------------
716
+ ----------------------------------------------------------------------------
717
+ combining_no_dedicated_notc_sync 276.54% 127.86ns 7.82M
718
+ combining_no_dedicated_notc_sync_dup 275.59% 128.31ns 7.79M
719
+ ----------------------------------------------------------------------------
720
+ combining_no_dedicated_notc_async 298.92% 118.29ns 8.45M
721
+ combining_no_dedicated_notc_async_dup 298.93% 118.28ns 8.45M
722
+ ----------------------------------------------------------------------------
723
+ combining_no_dedicated_tc_sync 300.56% 117.64ns 8.50M
724
+ combining_no_dedicated_tc_sync_dup 296.95% 119.07ns 8.40M
725
+ ----------------------------------------------------------------------------
726
+ combining_no_dedicated_tc_async 431.06% 82.03ns 12.19M
727
+ combining_no_dedicated_tc_async_dup 430.40% 82.15ns 12.17M
728
+ ----------------------------------------------------------------------------
729
+ ============================================================================
730
+
731
+ ---------------------------------- Number of threads = 16
732
+ ============================================================================
733
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
734
+ ============================================================================
735
+ no_combining_base 358.57ns 2.79M
736
+ no_combining_dup 99.97% 358.70ns 2.79M
737
+ ----------------------------------------------------------------------------
738
+ ----------------------------------------------------------------------------
739
+ combining_dedicated_notc_sync 319.73% 112.15ns 8.92M
740
+ combining_dedicated_notc_sync_dup 327.86% 109.37ns 9.14M
741
+ ----------------------------------------------------------------------------
742
+ combining_dedicated_notc_async 296.17% 121.07ns 8.26M
743
+ combining_dedicated_notc_async_dup 306.86% 116.85ns 8.56M
744
+ ----------------------------------------------------------------------------
745
+ combining_dedicated_tc_sync 337.53% 106.24ns 9.41M
746
+ combining_dedicated_tc_sync_dup 347.98% 103.04ns 9.70M
747
+ ----------------------------------------------------------------------------
748
+ combining_dedicated_tc_async 423.80% 84.61ns 11.82M
749
+ combining_dedicated_tc_async_dup 421.07% 85.16ns 11.74M
750
+ ----------------------------------------------------------------------------
751
+ ----------------------------------------------------------------------------
752
+ combining_no_dedicated_notc_sync 321.94% 111.38ns 8.98M
753
+ combining_no_dedicated_notc_sync_dup 318.54% 112.57ns 8.88M
754
+ ----------------------------------------------------------------------------
755
+ combining_no_dedicated_notc_async 364.71% 98.32ns 10.17M
756
+ combining_no_dedicated_notc_async_dup 364.22% 98.45ns 10.16M
757
+ ----------------------------------------------------------------------------
758
+ combining_no_dedicated_tc_sync 322.91% 111.04ns 9.01M
759
+ combining_no_dedicated_tc_sync_dup 322.42% 111.21ns 8.99M
760
+ ----------------------------------------------------------------------------
761
+ combining_no_dedicated_tc_async 466.30% 76.90ns 13.00M
762
+ combining_no_dedicated_tc_async_dup 462.76% 77.49ns 12.91M
763
+ ----------------------------------------------------------------------------
764
+ ============================================================================
765
+
766
+ ---------------------------------- Number of threads = 24
767
+ ============================================================================
768
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
769
+ ============================================================================
770
+ no_combining_base 348.54ns 2.87M
771
+ no_combining_dup 99.96% 348.69ns 2.87M
772
+ ----------------------------------------------------------------------------
773
+ ----------------------------------------------------------------------------
774
+ combining_dedicated_notc_sync 260.21% 133.95ns 7.47M
775
+ combining_dedicated_notc_sync_dup 257.84% 135.18ns 7.40M
776
+ ----------------------------------------------------------------------------
777
+ combining_dedicated_notc_async 242.25% 143.88ns 6.95M
778
+ combining_dedicated_notc_async_dup 235.88% 147.76ns 6.77M
779
+ ----------------------------------------------------------------------------
780
+ combining_dedicated_tc_sync 262.45% 132.80ns 7.53M
781
+ combining_dedicated_tc_sync_dup 251.14% 138.78ns 7.21M
782
+ ----------------------------------------------------------------------------
783
+ combining_dedicated_tc_async 256.89% 135.68ns 7.37M
784
+ combining_dedicated_tc_async_dup 304.76% 114.37ns 8.74M
785
+ ----------------------------------------------------------------------------
786
+ ----------------------------------------------------------------------------
787
+ combining_no_dedicated_notc_sync 270.20% 129.00ns 7.75M
788
+ combining_no_dedicated_notc_sync_dup 271.69% 128.29ns 7.80M
789
+ ----------------------------------------------------------------------------
790
+ combining_no_dedicated_notc_async 298.35% 116.82ns 8.56M
791
+ combining_no_dedicated_notc_async_dup 289.04% 120.59ns 8.29M
792
+ ----------------------------------------------------------------------------
793
+ combining_no_dedicated_tc_sync 286.59% 121.62ns 8.22M
794
+ combining_no_dedicated_tc_sync_dup 292.21% 119.28ns 8.38M
795
+ ----------------------------------------------------------------------------
796
+ combining_no_dedicated_tc_async 471.86% 73.87ns 13.54M
797
+ combining_no_dedicated_tc_async_dup 458.16% 76.08ns 13.14M
798
+ ----------------------------------------------------------------------------
799
+ ============================================================================
800
+
801
+ ---------------------------------- Number of threads = 32
802
+ ============================================================================
803
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
804
+ ============================================================================
805
+ no_combining_base 337.61ns 2.96M
806
+ no_combining_dup 99.41% 339.60ns 2.94M
807
+ ----------------------------------------------------------------------------
808
+ ----------------------------------------------------------------------------
809
+ combining_dedicated_notc_sync 204.50% 165.09ns 6.06M
810
+ combining_dedicated_notc_sync_dup 233.28% 144.72ns 6.91M
811
+ ----------------------------------------------------------------------------
812
+ combining_dedicated_notc_async 187.20% 180.35ns 5.54M
813
+ combining_dedicated_notc_async_dup 192.76% 175.15ns 5.71M
814
+ ----------------------------------------------------------------------------
815
+ combining_dedicated_tc_sync 220.56% 153.07ns 6.53M
816
+ combining_dedicated_tc_sync_dup 207.62% 162.61ns 6.15M
817
+ ----------------------------------------------------------------------------
818
+ combining_dedicated_tc_async 317.11% 106.46ns 9.39M
819
+ combining_dedicated_tc_async_dup 318.92% 105.86ns 9.45M
820
+ ----------------------------------------------------------------------------
821
+ ----------------------------------------------------------------------------
822
+ combining_no_dedicated_notc_sync 259.29% 130.21ns 7.68M
823
+ combining_no_dedicated_notc_sync_dup 248.33% 135.95ns 7.36M
824
+ ----------------------------------------------------------------------------
825
+ combining_no_dedicated_notc_async 290.40% 116.26ns 8.60M
826
+ combining_no_dedicated_notc_async_dup 299.92% 112.57ns 8.88M
827
+ ----------------------------------------------------------------------------
828
+ combining_no_dedicated_tc_sync 281.91% 119.76ns 8.35M
829
+ combining_no_dedicated_tc_sync_dup 284.19% 118.80ns 8.42M
830
+ ----------------------------------------------------------------------------
831
+ combining_no_dedicated_tc_async 435.16% 77.58ns 12.89M
832
+ combining_no_dedicated_tc_async_dup 389.67% 86.64ns 11.54M
833
+ ----------------------------------------------------------------------------
834
+ ============================================================================
835
+
836
+ ---------------------------------- Number of threads = 48
837
+ ============================================================================
838
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
839
+ ============================================================================
840
+ no_combining_base 334.48ns 2.99M
841
+ no_combining_dup 100.00% 334.46ns 2.99M
842
+ ----------------------------------------------------------------------------
843
+ ----------------------------------------------------------------------------
844
+ combining_dedicated_notc_sync 257.01% 130.14ns 7.68M
845
+ combining_dedicated_notc_sync_dup 254.13% 131.62ns 7.60M
846
+ ----------------------------------------------------------------------------
847
+ combining_dedicated_notc_async 189.56% 176.45ns 5.67M
848
+ combining_dedicated_notc_async_dup 247.68% 135.05ns 7.40M
849
+ ----------------------------------------------------------------------------
850
+ combining_dedicated_tc_sync 259.47% 128.91ns 7.76M
851
+ combining_dedicated_tc_sync_dup 281.34% 118.89ns 8.41M
852
+ ----------------------------------------------------------------------------
853
+ combining_dedicated_tc_async 301.96% 110.77ns 9.03M
854
+ combining_dedicated_tc_async_dup 347.65% 96.21ns 10.39M
855
+ ----------------------------------------------------------------------------
856
+ ----------------------------------------------------------------------------
857
+ combining_no_dedicated_notc_sync 268.45% 124.60ns 8.03M
858
+ combining_no_dedicated_notc_sync_dup 272.54% 122.73ns 8.15M
859
+ ----------------------------------------------------------------------------
860
+ combining_no_dedicated_notc_async 306.04% 109.29ns 9.15M
861
+ combining_no_dedicated_notc_async_dup 294.38% 113.62ns 8.80M
862
+ ----------------------------------------------------------------------------
863
+ combining_no_dedicated_tc_sync 280.89% 119.08ns 8.40M
864
+ combining_no_dedicated_tc_sync_dup 276.01% 121.18ns 8.25M
865
+ ----------------------------------------------------------------------------
866
+ combining_no_dedicated_tc_async 466.45% 71.71ns 13.95M
867
+ combining_no_dedicated_tc_async_dup 465.45% 71.86ns 13.92M
868
+ ----------------------------------------------------------------------------
869
+ ============================================================================
870
+
871
+ ---------------------------------- Number of threads = 64
872
+ ============================================================================
873
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
874
+ ============================================================================
875
+ no_combining_base 335.68ns 2.98M
876
+ no_combining_dup 101.03% 332.25ns 3.01M
877
+ ----------------------------------------------------------------------------
878
+ ----------------------------------------------------------------------------
879
+ combining_dedicated_notc_sync 272.91% 123.00ns 8.13M
880
+ combining_dedicated_notc_sync_dup 270.56% 124.07ns 8.06M
881
+ ----------------------------------------------------------------------------
882
+ combining_dedicated_notc_async 200.44% 167.47ns 5.97M
883
+ combining_dedicated_notc_async_dup 208.36% 161.10ns 6.21M
884
+ ----------------------------------------------------------------------------
885
+ combining_dedicated_tc_sync 258.40% 129.91ns 7.70M
886
+ combining_dedicated_tc_sync_dup 249.16% 134.72ns 7.42M
887
+ ----------------------------------------------------------------------------
888
+ combining_dedicated_tc_async 378.86% 88.60ns 11.29M
889
+ combining_dedicated_tc_async_dup 299.32% 112.15ns 8.92M
890
+ ----------------------------------------------------------------------------
891
+ ----------------------------------------------------------------------------
892
+ combining_no_dedicated_notc_sync 272.18% 123.33ns 8.11M
893
+ combining_no_dedicated_notc_sync_dup 275.26% 121.95ns 8.20M
894
+ ----------------------------------------------------------------------------
895
+ combining_no_dedicated_notc_async 296.23% 113.32ns 8.82M
896
+ combining_no_dedicated_notc_async_dup 311.17% 107.88ns 9.27M
897
+ ----------------------------------------------------------------------------
898
+ combining_no_dedicated_tc_sync 283.30% 118.49ns 8.44M
899
+ combining_no_dedicated_tc_sync_dup 263.86% 127.22ns 7.86M
900
+ ----------------------------------------------------------------------------
901
+ combining_no_dedicated_tc_async 426.62% 78.68ns 12.71M
902
+ combining_no_dedicated_tc_async_dup 445.17% 75.40ns 13.26M
903
+ ----------------------------------------------------------------------------
904
+ ============================================================================
905
+
906
+ ------------------------------------ custom interface
907
+
908
+ ---------------------------------- Number of threads = 1
909
+ ============================================================================
910
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
911
+ ============================================================================
912
+ no_combining_base 329.49ns 3.03M
913
+ no_combining_dup 99.91% 329.79ns 3.03M
914
+ ----------------------------------------------------------------------------
915
+ ----------------------------------------------------------------------------
916
+ combining_dedicated_notc_sync 98.69% 333.88ns 3.00M
917
+ combining_dedicated_notc_sync_dup 98.70% 333.83ns 3.00M
918
+ ----------------------------------------------------------------------------
919
+ combining_dedicated_notc_async 98.22% 335.47ns 2.98M
920
+ combining_dedicated_notc_async_dup 98.16% 335.66ns 2.98M
921
+ ----------------------------------------------------------------------------
922
+ combining_dedicated_tc_sync 98.70% 333.85ns 3.00M
923
+ combining_dedicated_tc_sync_dup 98.78% 333.58ns 3.00M
924
+ ----------------------------------------------------------------------------
925
+ combining_dedicated_tc_async 98.14% 335.73ns 2.98M
926
+ combining_dedicated_tc_async_dup 97.92% 336.49ns 2.97M
927
+ ----------------------------------------------------------------------------
928
+ ----------------------------------------------------------------------------
929
+ combining_no_dedicated_notc_sync 98.94% 333.00ns 3.00M
930
+ combining_no_dedicated_notc_sync_dup 98.86% 333.29ns 3.00M
931
+ ----------------------------------------------------------------------------
932
+ combining_no_dedicated_notc_async 98.36% 334.99ns 2.99M
933
+ combining_no_dedicated_notc_async_dup 98.61% 334.15ns 2.99M
934
+ ----------------------------------------------------------------------------
935
+ combining_no_dedicated_tc_sync 99.07% 332.58ns 3.01M
936
+ combining_no_dedicated_tc_sync_dup 99.12% 332.41ns 3.01M
937
+ ----------------------------------------------------------------------------
938
+ combining_no_dedicated_tc_async 97.08% 339.38ns 2.95M
939
+ combining_no_dedicated_tc_async_dup 97.54% 337.81ns 2.96M
940
+ ----------------------------------------------------------------------------
941
+ ============================================================================
942
+
943
+ ---------------------------------- Number of threads = 2
944
+ ============================================================================
945
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
946
+ ============================================================================
947
+ no_combining_base 216.71ns 4.61M
948
+ no_combining_dup 100.34% 215.97ns 4.63M
949
+ ----------------------------------------------------------------------------
950
+ ----------------------------------------------------------------------------
951
+ combining_dedicated_notc_sync 95.42% 227.11ns 4.40M
952
+ combining_dedicated_notc_sync_dup 94.16% 230.15ns 4.34M
953
+ ----------------------------------------------------------------------------
954
+ combining_dedicated_notc_async 91.84% 235.97ns 4.24M
955
+ combining_dedicated_notc_async_dup 91.41% 237.08ns 4.22M
956
+ ----------------------------------------------------------------------------
957
+ combining_dedicated_tc_sync 96.79% 223.90ns 4.47M
958
+ combining_dedicated_tc_sync_dup 96.54% 224.47ns 4.45M
959
+ ----------------------------------------------------------------------------
960
+ combining_dedicated_tc_async 90.90% 238.41ns 4.19M
961
+ combining_dedicated_tc_async_dup 95.45% 227.03ns 4.40M
962
+ ----------------------------------------------------------------------------
963
+ ----------------------------------------------------------------------------
964
+ combining_no_dedicated_notc_sync 101.13% 214.28ns 4.67M
965
+ combining_no_dedicated_notc_sync_dup 100.11% 216.48ns 4.62M
966
+ ----------------------------------------------------------------------------
967
+ combining_no_dedicated_notc_async 96.40% 224.80ns 4.45M
968
+ combining_no_dedicated_notc_async_dup 96.36% 224.90ns 4.45M
969
+ ----------------------------------------------------------------------------
970
+ combining_no_dedicated_tc_sync 100.86% 214.85ns 4.65M
971
+ combining_no_dedicated_tc_sync_dup 101.91% 212.65ns 4.70M
972
+ ----------------------------------------------------------------------------
973
+ combining_no_dedicated_tc_async 95.66% 226.54ns 4.41M
974
+ combining_no_dedicated_tc_async_dup 95.88% 226.03ns 4.42M
975
+ ----------------------------------------------------------------------------
976
+ ============================================================================
977
+
978
+ ---------------------------------- Number of threads = 3
979
+ ============================================================================
980
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
981
+ ============================================================================
982
+ no_combining_base 189.61ns 5.27M
983
+ no_combining_dup 100.22% 189.20ns 5.29M
984
+ ----------------------------------------------------------------------------
985
+ ----------------------------------------------------------------------------
986
+ combining_dedicated_notc_sync 103.18% 183.76ns 5.44M
987
+ combining_dedicated_notc_sync_dup 103.66% 182.92ns 5.47M
988
+ ----------------------------------------------------------------------------
989
+ combining_dedicated_notc_async 77.14% 245.81ns 4.07M
990
+ combining_dedicated_notc_async_dup 90.25% 210.10ns 4.76M
991
+ ----------------------------------------------------------------------------
992
+ combining_dedicated_tc_sync 89.88% 210.95ns 4.74M
993
+ combining_dedicated_tc_sync_dup 87.83% 215.90ns 4.63M
994
+ ----------------------------------------------------------------------------
995
+ combining_dedicated_tc_async 89.33% 212.26ns 4.71M
996
+ combining_dedicated_tc_async_dup 85.19% 222.56ns 4.49M
997
+ ----------------------------------------------------------------------------
998
+ ----------------------------------------------------------------------------
999
+ combining_no_dedicated_notc_sync 98.43% 192.64ns 5.19M
1000
+ combining_no_dedicated_notc_sync_dup 101.15% 187.46ns 5.33M
1001
+ ----------------------------------------------------------------------------
1002
+ combining_no_dedicated_notc_async 83.77% 226.36ns 4.42M
1003
+ combining_no_dedicated_notc_async_dup 84.69% 223.89ns 4.47M
1004
+ ----------------------------------------------------------------------------
1005
+ combining_no_dedicated_tc_sync 85.47% 221.85ns 4.51M
1006
+ combining_no_dedicated_tc_sync_dup 86.32% 219.65ns 4.55M
1007
+ ----------------------------------------------------------------------------
1008
+ combining_no_dedicated_tc_async 105.62% 179.52ns 5.57M
1009
+ combining_no_dedicated_tc_async_dup 105.26% 180.14ns 5.55M
1010
+ ----------------------------------------------------------------------------
1011
+ ============================================================================
1012
+
1013
+ ---------------------------------- Number of threads = 4
1014
+ ============================================================================
1015
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1016
+ ============================================================================
1017
+ no_combining_base 237.50ns 4.21M
1018
+ no_combining_dup 99.80% 237.97ns 4.20M
1019
+ ----------------------------------------------------------------------------
1020
+ ----------------------------------------------------------------------------
1021
+ combining_dedicated_notc_sync 112.56% 210.99ns 4.74M
1022
+ combining_dedicated_notc_sync_dup 104.08% 228.20ns 4.38M
1023
+ ----------------------------------------------------------------------------
1024
+ combining_dedicated_notc_async 101.44% 234.12ns 4.27M
1025
+ combining_dedicated_notc_async_dup 100.73% 235.77ns 4.24M
1026
+ ----------------------------------------------------------------------------
1027
+ combining_dedicated_tc_sync 111.70% 212.62ns 4.70M
1028
+ combining_dedicated_tc_sync_dup 113.00% 210.18ns 4.76M
1029
+ ----------------------------------------------------------------------------
1030
+ combining_dedicated_tc_async 131.11% 181.15ns 5.52M
1031
+ combining_dedicated_tc_async_dup 132.65% 179.04ns 5.59M
1032
+ ----------------------------------------------------------------------------
1033
+ ----------------------------------------------------------------------------
1034
+ combining_no_dedicated_notc_sync 115.76% 205.17ns 4.87M
1035
+ combining_no_dedicated_notc_sync_dup 114.70% 207.06ns 4.83M
1036
+ ----------------------------------------------------------------------------
1037
+ combining_no_dedicated_notc_async 111.63% 212.76ns 4.70M
1038
+ combining_no_dedicated_notc_async_dup 111.91% 212.22ns 4.71M
1039
+ ----------------------------------------------------------------------------
1040
+ combining_no_dedicated_tc_sync 120.07% 197.80ns 5.06M
1041
+ combining_no_dedicated_tc_sync_dup 118.25% 200.85ns 4.98M
1042
+ ----------------------------------------------------------------------------
1043
+ combining_no_dedicated_tc_async 153.73% 154.49ns 6.47M
1044
+ combining_no_dedicated_tc_async_dup 153.08% 155.15ns 6.45M
1045
+ ----------------------------------------------------------------------------
1046
+ ============================================================================
1047
+
1048
+ ---------------------------------- Number of threads = 6
1049
+ ============================================================================
1050
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1051
+ ============================================================================
1052
+ no_combining_base 281.56ns 3.55M
1053
+ no_combining_dup 99.97% 281.65ns 3.55M
1054
+ ----------------------------------------------------------------------------
1055
+ ----------------------------------------------------------------------------
1056
+ combining_dedicated_notc_sync 144.76% 194.50ns 5.14M
1057
+ combining_dedicated_notc_sync_dup 149.96% 187.76ns 5.33M
1058
+ ----------------------------------------------------------------------------
1059
+ combining_dedicated_notc_async 147.72% 190.61ns 5.25M
1060
+ combining_dedicated_notc_async_dup 140.86% 199.89ns 5.00M
1061
+ ----------------------------------------------------------------------------
1062
+ combining_dedicated_tc_sync 154.17% 182.63ns 5.48M
1063
+ combining_dedicated_tc_sync_dup 156.60% 179.80ns 5.56M
1064
+ ----------------------------------------------------------------------------
1065
+ combining_dedicated_tc_async 202.42% 139.10ns 7.19M
1066
+ combining_dedicated_tc_async_dup 203.44% 138.40ns 7.23M
1067
+ ----------------------------------------------------------------------------
1068
+ ----------------------------------------------------------------------------
1069
+ combining_no_dedicated_notc_sync 168.33% 167.27ns 5.98M
1070
+ combining_no_dedicated_notc_sync_dup 166.02% 169.59ns 5.90M
1071
+ ----------------------------------------------------------------------------
1072
+ combining_no_dedicated_notc_async 166.44% 169.16ns 5.91M
1073
+ combining_no_dedicated_notc_async_dup 160.14% 175.82ns 5.69M
1074
+ ----------------------------------------------------------------------------
1075
+ combining_no_dedicated_tc_sync 181.79% 154.88ns 6.46M
1076
+ combining_no_dedicated_tc_sync_dup 180.25% 156.20ns 6.40M
1077
+ ----------------------------------------------------------------------------
1078
+ combining_no_dedicated_tc_async 240.56% 117.04ns 8.54M
1079
+ combining_no_dedicated_tc_async_dup 240.74% 116.96ns 8.55M
1080
+ ----------------------------------------------------------------------------
1081
+ ============================================================================
1082
+
1083
+ ---------------------------------- Number of threads = 8
1084
+ ============================================================================
1085
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1086
+ ============================================================================
1087
+ no_combining_base 312.99ns 3.19M
1088
+ no_combining_dup 98.93% 316.37ns 3.16M
1089
+ ----------------------------------------------------------------------------
1090
+ ----------------------------------------------------------------------------
1091
+ combining_dedicated_notc_sync 182.71% 171.30ns 5.84M
1092
+ combining_dedicated_notc_sync_dup 183.23% 170.82ns 5.85M
1093
+ ----------------------------------------------------------------------------
1094
+ combining_dedicated_notc_async 183.16% 170.88ns 5.85M
1095
+ combining_dedicated_notc_async_dup 181.29% 172.64ns 5.79M
1096
+ ----------------------------------------------------------------------------
1097
+ combining_dedicated_tc_sync 191.49% 163.45ns 6.12M
1098
+ combining_dedicated_tc_sync_dup 191.04% 163.84ns 6.10M
1099
+ ----------------------------------------------------------------------------
1100
+ combining_dedicated_tc_async 302.89% 103.34ns 9.68M
1101
+ combining_dedicated_tc_async_dup 304.07% 102.94ns 9.71M
1102
+ ----------------------------------------------------------------------------
1103
+ ----------------------------------------------------------------------------
1104
+ combining_no_dedicated_notc_sync 220.41% 142.00ns 7.04M
1105
+ combining_no_dedicated_notc_sync_dup 219.90% 142.34ns 7.03M
1106
+ ----------------------------------------------------------------------------
1107
+ combining_no_dedicated_notc_async 218.66% 143.14ns 6.99M
1108
+ combining_no_dedicated_notc_async_dup 218.74% 143.09ns 6.99M
1109
+ ----------------------------------------------------------------------------
1110
+ combining_no_dedicated_tc_sync 241.82% 129.43ns 7.73M
1111
+ combining_no_dedicated_tc_sync_dup 241.72% 129.48ns 7.72M
1112
+ ----------------------------------------------------------------------------
1113
+ combining_no_dedicated_tc_async 352.39% 88.82ns 11.26M
1114
+ combining_no_dedicated_tc_async_dup 350.17% 89.38ns 11.19M
1115
+ ----------------------------------------------------------------------------
1116
+ ============================================================================
1117
+
1118
+ ---------------------------------- Number of threads = 12
1119
+ ============================================================================
1120
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1121
+ ============================================================================
1122
+ no_combining_base 350.05ns 2.86M
1123
+ no_combining_dup 99.06% 353.37ns 2.83M
1124
+ ----------------------------------------------------------------------------
1125
+ ----------------------------------------------------------------------------
1126
+ combining_dedicated_notc_sync 266.87% 131.17ns 7.62M
1127
+ combining_dedicated_notc_sync_dup 245.79% 142.42ns 7.02M
1128
+ ----------------------------------------------------------------------------
1129
+ combining_dedicated_notc_async 238.57% 146.73ns 6.82M
1130
+ combining_dedicated_notc_async_dup 240.02% 145.84ns 6.86M
1131
+ ----------------------------------------------------------------------------
1132
+ combining_dedicated_tc_sync 316.70% 110.53ns 9.05M
1133
+ combining_dedicated_tc_sync_dup 321.05% 109.03ns 9.17M
1134
+ ----------------------------------------------------------------------------
1135
+ combining_dedicated_tc_async 403.10% 86.84ns 11.52M
1136
+ combining_dedicated_tc_async_dup 409.94% 85.39ns 11.71M
1137
+ ----------------------------------------------------------------------------
1138
+ ----------------------------------------------------------------------------
1139
+ combining_no_dedicated_notc_sync 300.23% 116.59ns 8.58M
1140
+ combining_no_dedicated_notc_sync_dup 299.07% 117.04ns 8.54M
1141
+ ----------------------------------------------------------------------------
1142
+ combining_no_dedicated_notc_async 297.79% 117.55ns 8.51M
1143
+ combining_no_dedicated_notc_async_dup 296.66% 118.00ns 8.47M
1144
+ ----------------------------------------------------------------------------
1145
+ combining_no_dedicated_tc_sync 328.07% 106.70ns 9.37M
1146
+ combining_no_dedicated_tc_sync_dup 331.52% 105.59ns 9.47M
1147
+ ----------------------------------------------------------------------------
1148
+ combining_no_dedicated_tc_async 424.57% 82.45ns 12.13M
1149
+ combining_no_dedicated_tc_async_dup 409.47% 85.49ns 11.70M
1150
+ ----------------------------------------------------------------------------
1151
+ ============================================================================
1152
+
1153
+ ---------------------------------- Number of threads = 16
1154
+ ============================================================================
1155
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1156
+ ============================================================================
1157
+ no_combining_base 360.47ns 2.77M
1158
+ no_combining_dup 100.11% 360.07ns 2.78M
1159
+ ----------------------------------------------------------------------------
1160
+ ----------------------------------------------------------------------------
1161
+ combining_dedicated_notc_sync 320.54% 112.46ns 8.89M
1162
+ combining_dedicated_notc_sync_dup 313.31% 115.05ns 8.69M
1163
+ ----------------------------------------------------------------------------
1164
+ combining_dedicated_notc_async 296.83% 121.44ns 8.23M
1165
+ combining_dedicated_notc_async_dup 289.91% 124.34ns 8.04M
1166
+ ----------------------------------------------------------------------------
1167
+ combining_dedicated_tc_sync 364.27% 98.96ns 10.11M
1168
+ combining_dedicated_tc_sync_dup 361.10% 99.82ns 10.02M
1169
+ ----------------------------------------------------------------------------
1170
+ combining_dedicated_tc_async 424.43% 84.93ns 11.77M
1171
+ combining_dedicated_tc_async_dup 418.07% 86.22ns 11.60M
1172
+ ----------------------------------------------------------------------------
1173
+ ----------------------------------------------------------------------------
1174
+ combining_no_dedicated_notc_sync 373.13% 96.60ns 10.35M
1175
+ combining_no_dedicated_notc_sync_dup 364.35% 98.93ns 10.11M
1176
+ ----------------------------------------------------------------------------
1177
+ combining_no_dedicated_notc_async 361.40% 99.74ns 10.03M
1178
+ combining_no_dedicated_notc_async_dup 366.49% 98.36ns 10.17M
1179
+ ----------------------------------------------------------------------------
1180
+ combining_no_dedicated_tc_sync 382.22% 94.31ns 10.60M
1181
+ combining_no_dedicated_tc_sync_dup 380.64% 94.70ns 10.56M
1182
+ ----------------------------------------------------------------------------
1183
+ combining_no_dedicated_tc_async 461.14% 78.17ns 12.79M
1184
+ combining_no_dedicated_tc_async_dup 481.50% 74.86ns 13.36M
1185
+ ----------------------------------------------------------------------------
1186
+ ============================================================================
1187
+
1188
+ ---------------------------------- Number of threads = 24
1189
+ ============================================================================
1190
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1191
+ ============================================================================
1192
+ no_combining_base 348.97ns 2.87M
1193
+ no_combining_dup 100.12% 348.54ns 2.87M
1194
+ ----------------------------------------------------------------------------
1195
+ ----------------------------------------------------------------------------
1196
+ combining_dedicated_notc_sync 234.17% 149.02ns 6.71M
1197
+ combining_dedicated_notc_sync_dup 205.54% 169.78ns 5.89M
1198
+ ----------------------------------------------------------------------------
1199
+ combining_dedicated_notc_async 248.28% 140.55ns 7.11M
1200
+ combining_dedicated_notc_async_dup 239.71% 145.58ns 6.87M
1201
+ ----------------------------------------------------------------------------
1202
+ combining_dedicated_tc_sync 272.87% 127.89ns 7.82M
1203
+ combining_dedicated_tc_sync_dup 235.76% 148.02ns 6.76M
1204
+ ----------------------------------------------------------------------------
1205
+ combining_dedicated_tc_async 295.71% 118.01ns 8.47M
1206
+ combining_dedicated_tc_async_dup 265.87% 131.25ns 7.62M
1207
+ ----------------------------------------------------------------------------
1208
+ ----------------------------------------------------------------------------
1209
+ combining_no_dedicated_notc_sync 298.96% 116.73ns 8.57M
1210
+ combining_no_dedicated_notc_sync_dup 297.67% 117.23ns 8.53M
1211
+ ----------------------------------------------------------------------------
1212
+ combining_no_dedicated_notc_async 298.44% 116.93ns 8.55M
1213
+ combining_no_dedicated_notc_async_dup 292.80% 119.18ns 8.39M
1214
+ ----------------------------------------------------------------------------
1215
+ combining_no_dedicated_tc_sync 316.44% 110.28ns 9.07M
1216
+ combining_no_dedicated_tc_sync_dup 317.52% 109.90ns 9.10M
1217
+ ----------------------------------------------------------------------------
1218
+ combining_no_dedicated_tc_async 432.64% 80.66ns 12.40M
1219
+ combining_no_dedicated_tc_async_dup 441.55% 79.03ns 12.65M
1220
+ ----------------------------------------------------------------------------
1221
+ ============================================================================
1222
+
1223
+ ---------------------------------- Number of threads = 32
1224
+ ============================================================================
1225
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1226
+ ============================================================================
1227
+ no_combining_base 338.90ns 2.95M
1228
+ no_combining_dup 100.01% 338.87ns 2.95M
1229
+ ----------------------------------------------------------------------------
1230
+ ----------------------------------------------------------------------------
1231
+ combining_dedicated_notc_sync 204.34% 165.85ns 6.03M
1232
+ combining_dedicated_notc_sync_dup 202.84% 167.07ns 5.99M
1233
+ ----------------------------------------------------------------------------
1234
+ combining_dedicated_notc_async 192.27% 176.26ns 5.67M
1235
+ combining_dedicated_notc_async_dup 188.61% 179.68ns 5.57M
1236
+ ----------------------------------------------------------------------------
1237
+ combining_dedicated_tc_sync 247.57% 136.89ns 7.31M
1238
+ combining_dedicated_tc_sync_dup 285.53% 118.69ns 8.43M
1239
+ ----------------------------------------------------------------------------
1240
+ combining_dedicated_tc_async 277.97% 121.92ns 8.20M
1241
+ combining_dedicated_tc_async_dup 231.11% 146.64ns 6.82M
1242
+ ----------------------------------------------------------------------------
1243
+ ----------------------------------------------------------------------------
1244
+ combining_no_dedicated_notc_sync 299.20% 113.27ns 8.83M
1245
+ combining_no_dedicated_notc_sync_dup 289.53% 117.05ns 8.54M
1246
+ ----------------------------------------------------------------------------
1247
+ combining_no_dedicated_notc_async 282.29% 120.05ns 8.33M
1248
+ combining_no_dedicated_notc_async_dup 305.09% 111.08ns 9.00M
1249
+ ----------------------------------------------------------------------------
1250
+ combining_no_dedicated_tc_sync 312.52% 108.44ns 9.22M
1251
+ combining_no_dedicated_tc_sync_dup 324.88% 104.31ns 9.59M
1252
+ ----------------------------------------------------------------------------
1253
+ combining_no_dedicated_tc_async 420.99% 80.50ns 12.42M
1254
+ combining_no_dedicated_tc_async_dup 406.58% 83.35ns 12.00M
1255
+ ----------------------------------------------------------------------------
1256
+ ============================================================================
1257
+
1258
+ ---------------------------------- Number of threads = 48
1259
+ ============================================================================
1260
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1261
+ ============================================================================
1262
+ no_combining_base 334.84ns 2.99M
1263
+ no_combining_dup 99.57% 336.29ns 2.97M
1264
+ ----------------------------------------------------------------------------
1265
+ ----------------------------------------------------------------------------
1266
+ combining_dedicated_notc_sync 212.82% 157.34ns 6.36M
1267
+ combining_dedicated_notc_sync_dup 198.39% 168.78ns 5.93M
1268
+ ----------------------------------------------------------------------------
1269
+ combining_dedicated_notc_async 166.74% 200.82ns 4.98M
1270
+ combining_dedicated_notc_async_dup 197.07% 169.91ns 5.89M
1271
+ ----------------------------------------------------------------------------
1272
+ combining_dedicated_tc_sync 246.35% 135.92ns 7.36M
1273
+ combining_dedicated_tc_sync_dup 209.52% 159.81ns 6.26M
1274
+ ----------------------------------------------------------------------------
1275
+ combining_dedicated_tc_async 293.94% 113.91ns 8.78M
1276
+ combining_dedicated_tc_async_dup 280.74% 119.27ns 8.38M
1277
+ ----------------------------------------------------------------------------
1278
+ ----------------------------------------------------------------------------
1279
+ combining_no_dedicated_notc_sync 301.60% 111.02ns 9.01M
1280
+ combining_no_dedicated_notc_sync_dup 296.10% 113.09ns 8.84M
1281
+ ----------------------------------------------------------------------------
1282
+ combining_no_dedicated_notc_async 308.91% 108.40ns 9.23M
1283
+ combining_no_dedicated_notc_async_dup 298.48% 112.18ns 8.91M
1284
+ ----------------------------------------------------------------------------
1285
+ combining_no_dedicated_tc_sync 331.11% 101.13ns 9.89M
1286
+ combining_no_dedicated_tc_sync_dup 329.37% 101.66ns 9.84M
1287
+ ----------------------------------------------------------------------------
1288
+ combining_no_dedicated_tc_async 451.58% 74.15ns 13.49M
1289
+ combining_no_dedicated_tc_async_dup 431.37% 77.62ns 12.88M
1290
+ ----------------------------------------------------------------------------
1291
+ ============================================================================
1292
+
1293
+ ---------------------------------- Number of threads = 64
1294
+ ============================================================================
1295
+ folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpprelative time/iter iters/s
1296
+ ============================================================================
1297
+ no_combining_base 336.22ns 2.97M
1298
+ no_combining_dup 100.69% 333.92ns 2.99M
1299
+ ----------------------------------------------------------------------------
1300
+ ----------------------------------------------------------------------------
1301
+ combining_dedicated_notc_sync 230.57% 145.82ns 6.86M
1302
+ combining_dedicated_notc_sync_dup 221.08% 152.08ns 6.58M
1303
+ ----------------------------------------------------------------------------
1304
+ combining_dedicated_notc_async 232.38% 144.69ns 6.91M
1305
+ combining_dedicated_notc_async_dup 192.77% 174.41ns 5.73M
1306
+ ----------------------------------------------------------------------------
1307
+ combining_dedicated_tc_sync 284.07% 118.36ns 8.45M
1308
+ combining_dedicated_tc_sync_dup 298.03% 112.81ns 8.86M
1309
+ ----------------------------------------------------------------------------
1310
+ combining_dedicated_tc_async 361.07% 93.12ns 10.74M
1311
+ combining_dedicated_tc_async_dup 324.11% 103.74ns 9.64M
1312
+ ----------------------------------------------------------------------------
1313
+ ----------------------------------------------------------------------------
1314
+ combining_no_dedicated_notc_sync 284.58% 118.15ns 8.46M
1315
+ combining_no_dedicated_notc_sync_dup 301.73% 111.43ns 8.97M
1316
+ ----------------------------------------------------------------------------
1317
+ combining_no_dedicated_notc_async 294.87% 114.02ns 8.77M
1318
+ combining_no_dedicated_notc_async_dup 287.51% 116.94ns 8.55M
1319
+ ----------------------------------------------------------------------------
1320
+ combining_no_dedicated_tc_sync 317.96% 105.74ns 9.46M
1321
+ combining_no_dedicated_tc_sync_dup 332.45% 101.13ns 9.89M
1322
+ ----------------------------------------------------------------------------
1323
+ combining_no_dedicated_tc_async 441.96% 76.07ns 13.15M
1324
+ combining_no_dedicated_tc_async_dup 393.82% 85.37ns 11.71M
1325
+ ----------------------------------------------------------------------------
1326
+ ============================================================================
1327
+ [ OK ] FlatCombining.folly_benchmark (455269 ms)
1328
+ [ RUN ] FlatCombining.direct_measurement
1329
+
1330
+ Running benchmarks on machine with 32 logical cores
1331
+
1332
+ ------------------------------------ custom interface
1333
+
1334
+ ------------------------------------ Number of threads = 1
1335
+
1336
+ Test_name, Max time, Avg time, Min time, % base min / min
1337
+
1338
+ no_combining - base 334 ns 331 ns 329 ns
1339
+ no_combining - dup 335 ns 332 ns 331 ns 99%
1340
+ ---------------------------------------
1341
+ ---- dedicated-------------------------
1342
+ combining_notc_sync 340 ns 335 ns 332 ns 99%
1343
+ combining_notc_sync - dup 337 ns 335 ns 333 ns 98%
1344
+ ---------------------------------------
1345
+ combining_notc_async 360 ns 343 ns 338 ns 97%
1346
+ combining_notc_async - dup 339 ns 337 ns 336 ns 98%
1347
+ ---------------------------------------
1348
+ combining_tc_sync 337 ns 335 ns 333 ns 98%
1349
+ combining_tc_sync - dup 346 ns 336 ns 332 ns 99%
1350
+ ---------------------------------------
1351
+ combining_tc_async 338 ns 336 ns 335 ns 98%
1352
+ combining_tc_async - dup 338 ns 336 ns 335 ns 98%
1353
+ ---------------------------------------
1354
+ ---- no dedicated----------------------
1355
+ combining_notc_sync 338 ns 335 ns 333 ns 98%
1356
+ combining_notc_sync - dup 337 ns 334 ns 333 ns 98%
1357
+ ---------------------------------------
1358
+ combining_notc_async 339 ns 336 ns 335 ns 98%
1359
+ combining_notc_async - dup 347 ns 340 ns 336 ns 98%
1360
+ ---------------------------------------
1361
+ combining_tc_sync 337 ns 335 ns 333 ns 98%
1362
+ combining_tc_sync - dup 436 ns 386 ns 333 ns 98%
1363
+ ---------------------------------------
1364
+ combining_tc_async 340 ns 337 ns 335 ns 98%
1365
+ combining_tc_async - dup 338 ns 336 ns 335 ns 98%
1366
+ ---------------------------------------
1367
+
1368
+ ------------------------------------ Number of threads = 2
1369
+
1370
+ Test_name, Max time, Avg time, Min time, % base min / min
1371
+
1372
+ no_combining - base 315 ns 226 ns 211 ns
1373
+ no_combining - dup 217 ns 216 ns 213 ns 98%
1374
+ ---------------------------------------
1375
+ ---- dedicated-------------------------
1376
+ combining_notc_sync 251 ns 237 ns 229 ns 92%
1377
+ combining_notc_sync - dup 250 ns 241 ns 226 ns 93%
1378
+ ---------------------------------------
1379
+ combining_notc_async 278 ns 268 ns 252 ns 83%
1380
+ combining_notc_async - dup 297 ns 263 ns 245 ns 86%
1381
+ ---------------------------------------
1382
+ combining_tc_sync 254 ns 246 ns 234 ns 90%
1383
+ combining_tc_sync - dup 335 ns 252 ns 230 ns 91%
1384
+ ---------------------------------------
1385
+ combining_tc_async 305 ns 282 ns 245 ns 86%
1386
+ combining_tc_async - dup 284 ns 256 ns 239 ns 88%
1387
+ ---------------------------------------
1388
+ ---- no dedicated----------------------
1389
+ combining_notc_sync 230 ns 222 ns 217 ns 97%
1390
+ combining_notc_sync - dup 231 ns 225 ns 218 ns 96%
1391
+ ---------------------------------------
1392
+ combining_notc_async 244 ns 238 ns 233 ns 90%
1393
+ combining_notc_async - dup 241 ns 236 ns 231 ns 91%
1394
+ ---------------------------------------
1395
+ combining_tc_sync 283 ns 239 ns 221 ns 95%
1396
+ combining_tc_sync - dup 299 ns 247 ns 225 ns 93%
1397
+ ---------------------------------------
1398
+ combining_tc_async 290 ns 270 ns 244 ns 86%
1399
+ combining_tc_async - dup 290 ns 251 ns 238 ns 88%
1400
+ ---------------------------------------
1401
+
1402
+ ------------------------------------ Number of threads = 3
1403
+
1404
+ Test_name, Max time, Avg time, Min time, % base min / min
1405
+
1406
+ no_combining - base 211 ns 197 ns 190 ns
1407
+ no_combining - dup 209 ns 201 ns 195 ns 97%
1408
+ ---------------------------------------
1409
+ ---- dedicated-------------------------
1410
+ combining_notc_sync 258 ns 197 ns 168 ns 112%
1411
+ combining_notc_sync - dup 274 ns 200 ns 162 ns 117%
1412
+ ---------------------------------------
1413
+ combining_notc_async 307 ns 281 ns 260 ns 73%
1414
+ combining_notc_async - dup 284 ns 258 ns 216 ns 88%
1415
+ ---------------------------------------
1416
+ combining_tc_sync 228 ns 215 ns 192 ns 98%
1417
+ combining_tc_sync - dup 216 ns 203 ns 178 ns 107%
1418
+ ---------------------------------------
1419
+ combining_tc_async 246 ns 233 ns 220 ns 86%
1420
+ combining_tc_async - dup 236 ns 221 ns 208 ns 91%
1421
+ ---------------------------------------
1422
+ ---- no dedicated----------------------
1423
+ combining_notc_sync 204 ns 198 ns 184 ns 103%
1424
+ combining_notc_sync - dup 203 ns 198 ns 193 ns 98%
1425
+ ---------------------------------------
1426
+ combining_notc_async 238 ns 225 ns 218 ns 87%
1427
+ combining_notc_async - dup 231 ns 227 ns 223 ns 85%
1428
+ ---------------------------------------
1429
+ combining_tc_sync 220 ns 216 ns 211 ns 90%
1430
+ combining_tc_sync - dup 227 ns 223 ns 219 ns 87%
1431
+ ---------------------------------------
1432
+ combining_tc_async 182 ns 181 ns 179 ns 106%
1433
+ combining_tc_async - dup 186 ns 181 ns 180 ns 105%
1434
+ ---------------------------------------
1435
+
1436
+ ------------------------------------ Number of threads = 4
1437
+
1438
+ Test_name, Max time, Avg time, Min time, % base min / min
1439
+
1440
+ no_combining - base 258 ns 245 ns 238 ns
1441
+ no_combining - dup 262 ns 249 ns 245 ns 97%
1442
+ ---------------------------------------
1443
+ ---- dedicated-------------------------
1444
+ combining_notc_sync 264 ns 250 ns 220 ns 107%
1445
+ combining_notc_sync - dup 260 ns 254 ns 231 ns 102%
1446
+ ---------------------------------------
1447
+ combining_notc_async 266 ns 255 ns 233 ns 102%
1448
+ combining_notc_async - dup 268 ns 260 ns 252 ns 94%
1449
+ ---------------------------------------
1450
+ combining_tc_sync 250 ns 240 ns 215 ns 110%
1451
+ combining_tc_sync - dup 252 ns 242 ns 217 ns 109%
1452
+ ---------------------------------------
1453
+ combining_tc_async 199 ns 190 ns 183 ns 129%
1454
+ combining_tc_async - dup 199 ns 189 ns 178 ns 133%
1455
+ ---------------------------------------
1456
+ ---- no dedicated----------------------
1457
+ combining_notc_sync 223 ns 211 ns 203 ns 116%
1458
+ combining_notc_sync - dup 218 ns 211 ns 202 ns 117%
1459
+ ---------------------------------------
1460
+ combining_notc_async 222 ns 213 ns 207 ns 114%
1461
+ combining_notc_async - dup 236 ns 222 ns 215 ns 110%
1462
+ ---------------------------------------
1463
+ combining_tc_sync 202 ns 199 ns 197 ns 120%
1464
+ combining_tc_sync - dup 207 ns 199 ns 194 ns 122%
1465
+ ---------------------------------------
1466
+ combining_tc_async 162 ns 157 ns 152 ns 155%
1467
+ combining_tc_async - dup 188 ns 161 ns 154 ns 154%
1468
+ ---------------------------------------
1469
+
1470
+ ------------------------------------ Number of threads = 6
1471
+
1472
+ Test_name, Max time, Avg time, Min time, % base min / min
1473
+
1474
+ no_combining - base 298 ns 292 ns 281 ns
1475
+ no_combining - dup 296 ns 289 ns 270 ns 104%
1476
+ ---------------------------------------
1477
+ ---- dedicated-------------------------
1478
+ combining_notc_sync 221 ns 211 ns 196 ns 143%
1479
+ combining_notc_sync - dup 247 ns 211 ns 192 ns 146%
1480
+ ---------------------------------------
1481
+ combining_notc_async 216 ns 205 ns 194 ns 144%
1482
+ combining_notc_async - dup 215 ns 206 ns 197 ns 142%
1483
+ ---------------------------------------
1484
+ combining_tc_sync 225 ns 204 ns 185 ns 151%
1485
+ combining_tc_sync - dup 229 ns 210 ns 186 ns 151%
1486
+ ---------------------------------------
1487
+ combining_tc_async 165 ns 152 ns 144 ns 194%
1488
+ combining_tc_async - dup 166 ns 150 ns 143 ns 195%
1489
+ ---------------------------------------
1490
+ ---- no dedicated----------------------
1491
+ combining_notc_sync 184 ns 182 ns 180 ns 155%
1492
+ combining_notc_sync - dup 176 ns 174 ns 172 ns 163%
1493
+ ---------------------------------------
1494
+ combining_notc_async 179 ns 177 ns 174 ns 161%
1495
+ combining_notc_async - dup 186 ns 181 ns 177 ns 158%
1496
+ ---------------------------------------
1497
+ combining_tc_sync 164 ns 163 ns 160 ns 174%
1498
+ combining_tc_sync - dup 171 ns 168 ns 161 ns 173%
1499
+ ---------------------------------------
1500
+ combining_tc_async 142 ns 139 ns 138 ns 202%
1501
+ combining_tc_async - dup 141 ns 136 ns 119 ns 235%
1502
+ ---------------------------------------
1503
+
1504
+ ------------------------------------ Number of threads = 8
1505
+
1506
+ Test_name, Max time, Avg time, Min time, % base min / min
1507
+
1508
+ no_combining - base 333 ns 328 ns 315 ns
1509
+ no_combining - dup 336 ns 330 ns 327 ns 96%
1510
+ ---------------------------------------
1511
+ ---- dedicated-------------------------
1512
+ combining_notc_sync 203 ns 179 ns 172 ns 183%
1513
+ combining_notc_sync - dup 190 ns 177 ns 171 ns 183%
1514
+ ---------------------------------------
1515
+ combining_notc_async 204 ns 183 ns 170 ns 185%
1516
+ combining_notc_async - dup 201 ns 187 ns 176 ns 179%
1517
+ ---------------------------------------
1518
+ combining_tc_sync 177 ns 170 ns 165 ns 190%
1519
+ combining_tc_sync - dup 178 ns 167 ns 164 ns 192%
1520
+ ---------------------------------------
1521
+ combining_tc_async 134 ns 115 ns 105 ns 300%
1522
+ combining_tc_async - dup 132 ns 115 ns 103 ns 304%
1523
+ ---------------------------------------
1524
+ ---- no dedicated----------------------
1525
+ combining_notc_sync 154 ns 145 ns 143 ns 220%
1526
+ combining_notc_sync - dup 153 ns 144 ns 142 ns 222%
1527
+ ---------------------------------------
1528
+ combining_notc_async 145 ns 144 ns 143 ns 219%
1529
+ combining_notc_async - dup 157 ns 148 ns 144 ns 218%
1530
+ ---------------------------------------
1531
+ combining_tc_sync 142 ns 134 ns 130 ns 241%
1532
+ combining_tc_sync - dup 144 ns 136 ns 130 ns 241%
1533
+ ---------------------------------------
1534
+ combining_tc_async 118 ns 99 ns 91 ns 344%
1535
+ combining_tc_async - dup 118 ns 95 ns 91 ns 344%
1536
+ ---------------------------------------
1537
+
1538
+ ------------------------------------ Number of threads = 12
1539
+
1540
+ Test_name, Max time, Avg time, Min time, % base min / min
1541
+
1542
+ no_combining - base 361 ns 357 ns 353 ns
1543
+ no_combining - dup 361 ns 357 ns 355 ns 99%
1544
+ ---------------------------------------
1545
+ ---- dedicated-------------------------
1546
+ combining_notc_sync 190 ns 157 ns 138 ns 255%
1547
+ combining_notc_sync - dup 162 ns 149 ns 138 ns 255%
1548
+ ---------------------------------------
1549
+ combining_notc_async 163 ns 153 ns 145 ns 242%
1550
+ combining_notc_async - dup 194 ns 158 ns 152 ns 231%
1551
+ ---------------------------------------
1552
+ combining_tc_sync 181 ns 128 ns 111 ns 316%
1553
+ combining_tc_sync - dup 183 ns 148 ns 121 ns 289%
1554
+ ---------------------------------------
1555
+ combining_tc_async 92 ns 89 ns 87 ns 402%
1556
+ combining_tc_async - dup 152 ns 105 ns 87 ns 405%
1557
+ ---------------------------------------
1558
+ ---- no dedicated----------------------
1559
+ combining_notc_sync 120 ns 119 ns 118 ns 298%
1560
+ combining_notc_sync - dup 120 ns 119 ns 118 ns 298%
1561
+ ---------------------------------------
1562
+ combining_notc_async 122 ns 120 ns 120 ns 294%
1563
+ combining_notc_async - dup 121 ns 120 ns 118 ns 297%
1564
+ ---------------------------------------
1565
+ combining_tc_sync 110 ns 108 ns 106 ns 331%
1566
+ combining_tc_sync - dup 110 ns 109 ns 107 ns 327%
1567
+ ---------------------------------------
1568
+ combining_tc_async 88 ns 87 ns 85 ns 411%
1569
+ combining_tc_async - dup 90 ns 88 ns 85 ns 411%
1570
+ ---------------------------------------
1571
+
1572
+ ------------------------------------ Number of threads = 16
1573
+
1574
+ Test_name, Max time, Avg time, Min time, % base min / min
1575
+
1576
+ no_combining - base 363 ns 361 ns 360 ns
1577
+ no_combining - dup 362 ns 361 ns 358 ns 100%
1578
+ ---------------------------------------
1579
+ ---- dedicated-------------------------
1580
+ combining_notc_sync 177 ns 136 ns 111 ns 323%
1581
+ combining_notc_sync - dup 185 ns 148 ns 112 ns 320%
1582
+ ---------------------------------------
1583
+ combining_notc_async 191 ns 151 ns 122 ns 294%
1584
+ combining_notc_async - dup 179 ns 157 ns 118 ns 305%
1585
+ ---------------------------------------
1586
+ combining_tc_sync 154 ns 125 ns 100 ns 360%
1587
+ combining_tc_sync - dup 166 ns 130 ns 98 ns 367%
1588
+ ---------------------------------------
1589
+ combining_tc_async 143 ns 107 ns 86 ns 418%
1590
+ combining_tc_async - dup 132 ns 112 ns 88 ns 407%
1591
+ ---------------------------------------
1592
+ ---- no dedicated----------------------
1593
+ combining_notc_sync 121 ns 103 ns 98 ns 367%
1594
+ combining_notc_sync - dup 117 ns 104 ns 99 ns 362%
1595
+ ---------------------------------------
1596
+ combining_notc_async 116 ns 105 ns 99 ns 363%
1597
+ combining_notc_async - dup 112 ns 104 ns 100 ns 359%
1598
+ ---------------------------------------
1599
+ combining_tc_sync 111 ns 101 ns 94 ns 381%
1600
+ combining_tc_sync - dup 113 ns 98 ns 93 ns 387%
1601
+ ---------------------------------------
1602
+ combining_tc_async 97 ns 85 ns 74 ns 484%
1603
+ combining_tc_async - dup 98 ns 86 ns 78 ns 457%
1604
+ ---------------------------------------
1605
+
1606
+ ------------------------------------ Number of threads = 24
1607
+
1608
+ Test_name, Max time, Avg time, Min time, % base min / min
1609
+
1610
+ no_combining - base 352 ns 351 ns 349 ns
1611
+ no_combining - dup 352 ns 351 ns 348 ns 100%
1612
+ ---------------------------------------
1613
+ ---- dedicated-------------------------
1614
+ combining_notc_sync 214 ns 173 ns 149 ns 234%
1615
+ combining_notc_sync - dup 212 ns 166 ns 137 ns 254%
1616
+ ---------------------------------------
1617
+ combining_notc_async 232 ns 198 ns 161 ns 216%
1618
+ combining_notc_async - dup 225 ns 191 ns 149 ns 234%
1619
+ ---------------------------------------
1620
+ combining_tc_sync 192 ns 152 ns 129 ns 270%
1621
+ combining_tc_sync - dup 176 ns 156 ns 121 ns 286%
1622
+ ---------------------------------------
1623
+ combining_tc_async 202 ns 147 ns 118 ns 296%
1624
+ combining_tc_async - dup 200 ns 158 ns 120 ns 291%
1625
+ ---------------------------------------
1626
+ ---- no dedicated----------------------
1627
+ combining_notc_sync 161 ns 125 ns 115 ns 303%
1628
+ combining_notc_sync - dup 144 ns 127 ns 116 ns 299%
1629
+ ---------------------------------------
1630
+ combining_notc_async 135 ns 122 ns 116 ns 298%
1631
+ combining_notc_async - dup 341 ns 148 ns 117 ns 298%
1632
+ ---------------------------------------
1633
+ combining_tc_sync 130 ns 118 ns 109 ns 319%
1634
+ combining_tc_sync - dup 116 ns 110 ns 105 ns 332%
1635
+ ---------------------------------------
1636
+ combining_tc_async 97 ns 86 ns 79 ns 442%
1637
+ combining_tc_async - dup 95 ns 86 ns 79 ns 440%
1638
+ ---------------------------------------
1639
+
1640
+ ------------------------------------ Number of threads = 32
1641
+
1642
+ Test_name, Max time, Avg time, Min time, % base min / min
1643
+
1644
+ no_combining - base 337 ns 336 ns 333 ns
1645
+ no_combining - dup 338 ns 336 ns 333 ns 99%
1646
+ ---------------------------------------
1647
+ ---- dedicated-------------------------
1648
+ combining_notc_sync 193 ns 177 ns 162 ns 204%
1649
+ combining_notc_sync - dup 211 ns 181 ns 156 ns 213%
1650
+ ---------------------------------------
1651
+ combining_notc_async 245 ns 200 ns 162 ns 205%
1652
+ combining_notc_async - dup 216 ns 197 ns 149 ns 223%
1653
+ ---------------------------------------
1654
+ combining_tc_sync 195 ns 167 ns 121 ns 274%
1655
+ combining_tc_sync - dup 179 ns 164 ns 143 ns 231%
1656
+ ---------------------------------------
1657
+ combining_tc_async 187 ns 152 ns 108 ns 307%
1658
+ combining_tc_async - dup 182 ns 151 ns 125 ns 266%
1659
+ ---------------------------------------
1660
+ ---- no dedicated----------------------
1661
+ combining_notc_sync 189 ns 127 ns 114 ns 290%
1662
+ combining_notc_sync - dup 126 ns 118 ns 110 ns 302%
1663
+ ---------------------------------------
1664
+ combining_notc_async 233 ns 129 ns 112 ns 297%
1665
+ combining_notc_async - dup 170 ns 126 ns 113 ns 293%
1666
+ ---------------------------------------
1667
+ combining_tc_sync 948 ns 212 ns 107 ns 309%
1668
+ combining_tc_sync - dup 137 ns 112 ns 104 ns 318%
1669
+ ---------------------------------------
1670
+ combining_tc_async 90 ns 86 ns 79 ns 421%
1671
+ combining_tc_async - dup 94 ns 87 ns 80 ns 414%
1672
+ ---------------------------------------
1673
+
1674
+ ------------------------------------ Number of threads = 48
1675
+
1676
+ Test_name, Max time, Avg time, Min time, % base min / min
1677
+
1678
+ no_combining - base 340 ns 336 ns 334 ns
1679
+ no_combining - dup 336 ns 335 ns 334 ns 100%
1680
+ ---------------------------------------
1681
+ ---- dedicated-------------------------
1682
+ combining_notc_sync 214 ns 176 ns 137 ns 243%
1683
+ combining_notc_sync - dup 210 ns 173 ns 128 ns 260%
1684
+ ---------------------------------------
1685
+ combining_notc_async 217 ns 186 ns 162 ns 205%
1686
+ combining_notc_async - dup 215 ns 186 ns 149 ns 224%
1687
+ ---------------------------------------
1688
+ combining_tc_sync 206 ns 171 ns 145 ns 230%
1689
+ combining_tc_sync - dup 179 ns 149 ns 126 ns 265%
1690
+ ---------------------------------------
1691
+ combining_tc_async 175 ns 138 ns 108 ns 309%
1692
+ combining_tc_async - dup 169 ns 134 ns 110 ns 301%
1693
+ ---------------------------------------
1694
+ ---- no dedicated----------------------
1695
+ combining_notc_sync 1798 ns 293 ns 118 ns 282%
1696
+ combining_notc_sync - dup 171 ns 122 ns 105 ns 318%
1697
+ ---------------------------------------
1698
+ combining_notc_async 227 ns 132 ns 110 ns 302%
1699
+ combining_notc_async - dup 226 ns 137 ns 111 ns 301%
1700
+ ---------------------------------------
1701
+ combining_tc_sync 111 ns 106 ns 102 ns 327%
1702
+ combining_tc_sync - dup 127 ns 110 ns 104 ns 321%
1703
+ ---------------------------------------
1704
+ combining_tc_async 297 ns 117 ns 77 ns 433%
1705
+ combining_tc_async - dup 742 ns 149 ns 77 ns 432%
1706
+ ---------------------------------------
1707
+
1708
+ ------------------------------------ Number of threads = 64
1709
+
1710
+ Test_name, Max time, Avg time, Min time, % base min / min
1711
+
1712
+ no_combining - base 338 ns 333 ns 331 ns
1713
+ no_combining - dup 335 ns 333 ns 331 ns 99%
1714
+ ---------------------------------------
1715
+ ---- dedicated-------------------------
1716
+ combining_notc_sync 198 ns 163 ns 148 ns 223%
1717
+ combining_notc_sync - dup 172 ns 154 ns 124 ns 266%
1718
+ ---------------------------------------
1719
+ combining_notc_async 211 ns 177 ns 158 ns 209%
1720
+ combining_notc_async - dup 182 ns 166 ns 152 ns 216%
1721
+ ---------------------------------------
1722
+ combining_tc_sync 195 ns 133 ns 112 ns 294%
1723
+ combining_tc_sync - dup 158 ns 135 ns 108 ns 305%
1724
+ ---------------------------------------
1725
+ combining_tc_async 145 ns 119 ns 95 ns 347%
1726
+ combining_tc_async - dup 159 ns 130 ns 95 ns 346%
1727
+ ---------------------------------------
1728
+ ---- no dedicated----------------------
1729
+ combining_notc_sync 188 ns 123 ns 107 ns 308%
1730
+ combining_notc_sync - dup 546 ns 159 ns 107 ns 307%
1731
+ ---------------------------------------
1732
+ combining_notc_async 558 ns 160 ns 108 ns 304%
1733
+ combining_notc_async - dup 192 ns 127 ns 107 ns 308%
1734
+ ---------------------------------------
1735
+ combining_tc_sync 325 ns 130 ns 101 ns 325%
1736
+ combining_tc_sync - dup 1766 ns 273 ns 101 ns 325%
1737
+ ---------------------------------------
1738
+ combining_tc_async 417 ns 118 ns 74 ns 446%
1739
+ combining_tc_async - dup 838 ns 212 ns 72 ns 455%
1740
+ ---------------------------------------
1741
+ [ OK ] FlatCombining.direct_measurement (178622 ms)
1742
+ [----------] 2 tests from FlatCombining (633891 ms total)
1743
+
1744
+ [----------] Global test environment tear-down
1745
+ [==========] 2 tests from 1 test case ran. (633891 ms total)
1746
+ [ PASSED ] 2 tests.
1747
+
1748
+ ---
1749
+
1750
+ $ lscpu
1751
+
1752
+ Architecture: x86_64
1753
+ CPU op-mode(s): 32-bit, 64-bit
1754
+ Byte Order: Little Endian
1755
+ CPU(s): 32
1756
+ On-line CPU(s) list: 0-31
1757
+ Thread(s) per core: 2
1758
+ Core(s) per socket: 8
1759
+ Socket(s): 2
1760
+ NUMA node(s): 2
1761
+ Vendor ID: GenuineIntel
1762
+ CPU family: 6
1763
+ Model: 45
1764
+ Model name: Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
1765
+ Stepping: 6
1766
+ CPU MHz: 2200.000
1767
+ CPU max MHz: 2200.0000
1768
+ CPU min MHz: 1200.0000
1769
+ BogoMIPS: 4399.87
1770
+ Virtualization: VT-x
1771
+ L1d cache: 32K
1772
+ L1i cache: 32K
1773
+ L2 cache: 256K
1774
+ L3 cache: 20480K
1775
+ NUMA node0 CPU(s): 0-7,16-23
1776
+ NUMA node1 CPU(s): 8-15,24-31
1777
+
1778
+ Flags: fpu vme de pse tsc msr pae mce cx8 apic sep
1779
+ mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht
1780
+ tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts
1781
+ rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq
1782
+ dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca
1783
+ sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm
1784
+ epb tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm arat pln pts
1785
+
1786
+ ---
1787
+
1788
+ */
1789
+ // clang-format on