Поскольку вы не ссылаетесь на какие-либо конкретные обсуждения по этой теме, я могу лишь передать тот небольшой опыт, который у меня есть по этой теме со стороны Java:
Гранулярность классического System.currentTimeMillis()
было довольно плохо некоторое время назад (15 мс на Windows XP).Это означает, что наименьшая возможная разница между любыми двумя соседними вызовами System.currentTimeMillis()
, которые не возвращают одно и то же значение, составляет 15 мс.Поэтому, если вы измеряете событие, которое занимает 8 мс, вы получите либо 0 мс, либо 15 мс в результате.
Для измерения небольших промежутков времени это явно катастрофично.Для измерения более длинных промежутков времени это на самом деле не проблема.
Это одна из главных причин, почему Java представила System.nanoTime
, который был специально , предназначенный для измерения малого времениspans и обычно (то есть, когда ОС поддерживает это) имеет значительно более тонкую гранулярность (во всех системах, которые я тестировал на нем, никогда не возвращалось одно и то же значение дважды, даже когда вызывается двачисло раз подряд без вычислений между ними).
Таким образом, современные компьютеры могут обычно обеспечивают довольно точное и точное измерение времени, при условии вы используете правильные API.