Влияние точности типа даты на производительность - PullRequest
0 голосов
/ 06 декабря 2018

В библиотеках времени c ++ ( date или chrono ), использует ли тип высокой точности этих библиотек снижение производительности (использование памяти, скорость) или он не зависит от типаточности?

тип высокой точности: наносекунды, микросекунды, миллисекунды, ...

1 Ответ

0 голосов
/ 06 декабря 2018

Выбор точности в chrono::duration - это компромисс между точностью и диапазоном, и он не влияет на производительность.

Каждый из хронографических часов имеет «собственную точность», задокументированную их часами.вложенный duration тип, и это то, что он есть (не может быть изменен клиентом).Если вы хотите, чтобы time_point или duration отличались от этого (после вызова now()), стоимость равна одному умножению или делению, чтобы получить желаемую точность.И как только вы получите желаемую точность, вам больше не придется использовать эту точность.

Чем выше точность, обычно , тем меньше ваш диапазон.Защита от переполнения отсутствует, если вы не используете пользовательский Rep, который обеспечивает такую ​​проверку.Вы можете проверить свой диапазон с помощью статических duration::min()/max() функций-членов.

Источник ошибки времени выполнения может возникнуть при преобразовании длительности курсора с очень большим, но в диапазоне значением в более высокую точность, что приводит кпереполнение с более высокой точностью.Например, если у вас есть значение microseconds, превышающее 292 года, и конвертируйте его в nanoseconds, вы получите переполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...