| 186 | } |
| 187 | |
| 188 | inline void PerformanceTest::runIteration() |
| 189 | { |
| 190 | timespec iterationStop, iterationStart; |
| 191 | |
| 192 | Barrier::GetInstance().reset(m_threadsCount); |
| 193 | for (Worker *worker : m_workers) { |
| 194 | worker->run(); |
| 195 | } |
| 196 | for (Worker *worker : m_workers) { |
| 197 | worker->finish(); |
| 198 | } |
| 199 | EMIT(1, "Alloc completed"); |
| 200 | clock_gettime(CLOCK_MONOTONIC, &iterationStop); |
| 201 | iterationStart = Barrier::GetInstance().releasedAt(); |
| 202 | m_durations.push_back( |
| 203 | (iterationStop.tv_sec * NanoSecInSec + iterationStop.tv_nsec) - |
| 204 | (iterationStart.tv_sec * NanoSecInSec + iterationStart.tv_nsec) |
| 205 | ); |
| 206 | for (Worker *worker : m_workers) { |
| 207 | worker->clean(); |
| 208 | } |
| 209 | } |
| 210 | |
| 211 | void PerformanceTest::prepareWorkers() |
| 212 | { |