Я хочу, чтобы временные точки, выбранные в одном и том же потоке, никогда не были равными. Это потому, что я использую временные точки, чтобы различать разные результаты вычислений.
Псевдокод:
StampedResult fn() {
auto result = Calculations();
auto time_stamp = std::chrono::steady_clock::now();
return {time_stamp, result);
}
Теперь, если Calculations()
всегда было сложным, это было бы автоматически решено. Но иногда Calculations()
может немедленно вернуться.
Итак, я подумал, что мне следует проверить, могут ли 2 последовательных вызова steady_clock::now()
вернуть одно и то же значение, например:
https://onlinegdb.com/BkiDAZRe8
На onlinegdb.com
и на моем ноутбуке Intel® Core™ i7-8750H CPU @ 2.20GHz
Я никогда не получу одно и то же возвращаемое значение. Но может ли какой-нибудь другой сверхвысокочастотный процессор на самом деле вернуть те же значения, учитывая наносекундную точность steady_clock
?