| 308 | class Period, |
| 309 | class F> |
| 310 | sample |
| 311 | run_for(std::chrono::duration<Rep, Period> interval, F&& f) |
| 312 | { |
| 313 | clock_type::duration elapsed(0); |
| 314 | std::size_t n = 0; |
| 315 | do |
| 316 | { |
| 317 | elapsed += f(); |
| 318 | ++n; |
| 319 | } |
| 320 | while(elapsed < interval); |
| 321 | return { |
| 322 | n, |
| 323 | static_cast<std::size_t>( |
| 324 | std::chrono::duration_cast<std::chrono::milliseconds>( |
| 325 | elapsed).count()), |
| 326 | 0}; |
| 327 | } |
| 328 | |
| 329 | std::size_t |
| 330 | megabytes_per_second( |