2
0
mirror of https://github.com/boostorg/fiber.git synced 2026-02-13 00:12:17 +00:00
Files
fiber/doc/performance.qbk
2015-09-05 15:29:42 +02:00

64 lines
2.5 KiB
Plaintext

[/
Copyright Oliver Kowalke 2009.
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt
]
[section:performance Performance]
Performance measurements were taken using `std::chrono::highresolution_clock`,
with overhead corrections.
The code was compiled using the build options:
variant = release, optimization = speed
[footnote Intel Core2 Q6700, x86_64, 3GHz].
The columns labeled [*fiber (atomics)] were compiled with default fiber
synchronization, capable of synchronizing fibers running on different threads.
The columns labeled [*fiber (raw)] were compiled with [link cross_thread_sync
`BOOST_FIBERS_NO_ATOMICS`].
[table Overhead of join (contains fiber-context destruction, fiber-stack deallocation)
[[thread] [fiber (atomics)] [fiber (raw)] [tbb] [qthread]]
[[18 \u00b5s] [950 ns] [850 ns] [570 ns] [620 ns]]
]
(from [@../../performance/fiber/overhead_join.cpp overhead_join.cpp])
[table Overhead of detach
[[thread] [fiber (atomics)] [fiber (raw)]]
[[126 ns] [21 ns] [15 ns]]
]
(from [@../../performance/fiber/overhead_detach.cpp overhead_detach.cpp])
[table Overhead of yield
[[thread] [fiber (atomics)] [fiber (raw)]]
[[1.5 \u00b5s] [189 ns] [168 ns]]
]
(from [@../../performance/fiber/overhead_yield.cpp overhead_yield.cpp])
[table Overhead of waiting on a future
[[thread] [fiber (atomics)] [fiber (raw)]]
[[16 \u00b5s] [1.4 \u00b5s] [1.4 \u00b5s]]
]
(from [@../../performance/fiber/overhead_future.cpp overhead_future.cpp])
[table Overhead of fiber creation (contains fiber-stack allocation and preparation, fiber-context construction, scheduler handling)
[[thread] [fiber (atomics)] [fiber (raw)]]
[[18 \u00b5s] [210 ns] [205 ns] ]
]
(from [@../../performance/fiber/overhead_create.cpp overhead_create.cpp])
[table Scaling of creating and joining
[[average of] [thread] [fiber (atomics)] [fiber (raw)]]
[[10] [8.21 \u00b5s] [1.96 \u00b5s] [1.85 \u00b5s]]
[[50] [6.67 \u00b5s] [1.40 \u00b5s] [1.27 \u00b5s]]
[[100] [6.79 \u00b5s] [1.84 \u00b5s] [1.81 \u00b5s]]
[[500] [8.25 \u00b5s] [1.13 \u00b5s] [1.10 \u00b5s]]
[[1000] [7.71 \u00b5s] [1.46 \u00b5s] [1.26 \u00b5s]]
[[5000] [5.67 \u00b5s] [2.11 \u00b5s] [1.90 \u00b5s]]
[[10000] [5.25 \u00b5s] [2.36 \u00b5s] [1.89 \u00b5s]]
]
(from [@../../performance/fiber/scale_join.cpp scale_join.cpp])
[endsect]