| 246 | class Period, |
| 247 | class F> |
| 248 | sample |
| 249 | run_for(std::chrono::duration<Rep, Period> interval, F&& f) |
| 250 | { |
| 251 | clock_type::duration elapsed(0); |
| 252 | std::size_t n = 0; |
| 253 | do |
| 254 | { |
| 255 | elapsed += f(); |
| 256 | ++n; |
| 257 | } |
| 258 | while(elapsed < interval); |
| 259 | return { n, static_cast<std::size_t>( |
| 260 | std::chrono::duration_cast< |
| 261 | std::chrono::milliseconds>( |
| 262 | elapsed).count()), 0 }; |
| 263 | } |
| 264 | |
| 265 | std::size_t |
| 266 | megabytes_per_second( |