Size: a a a

2020 April 30

C

Calculon in Go-go!
Yury
ребят, а на сколькоточный таймер в го? какова возможная погрешность в год?))
построй атомные часы
источник

М

Мерль🛠 in Go-go!
Yury
ребят, а на сколькоточный таймер в го? какова возможная погрешность в год?))
Точность таймера в Go зависит от точности часов на машине, на которой исполняется код. + есть такой момент, что вообще говоря время переключения между потоками на большинстве ОС не гарантировано.

В целом если машина, на которой запущена программа, подключена к сети и имеет настроенный NTP, то погрешность в год составит примерно несколько десятков миллисекунд при просто двух измерениях.

В общем это сложный вопрос.
источник

Y

Yury in Go-go!
Мерль🛠
Точность таймера в Go зависит от точности часов на машине, на которой исполняется код. + есть такой момент, что вообще говоря время переключения между потоками на большинстве ОС не гарантировано.

В целом если машина, на которой запущена программа, подключена к сети и имеет настроенный NTP, то погрешность в год составит примерно несколько десятков миллисекунд при просто двух измерениях.

В общем это сложный вопрос.
вот меня это с большего и интересует... т.е. подстраивается ли таймер под синхронизацию системного времени.
источник

АП

Александр Попов... in Go-go!
как уже не однократно говорилось - ракету по этому таймеру я бы не запускал :)
источник

М

Мерль🛠 in Go-go!
Об NTP можно почитать здесь
https://ru.wikipedia.org/wiki/NTP

На устройство часов в Go можно посмотреть здесь

https://golang.org/src/time/
источник

АП

Александр Попов... in Go-go!
интересно есть ли решение с высокоточным таймером... хотяяя
источник

АП

Александр Попов... in Go-go!
не с нашим GC
источник

М

Мерль🛠 in Go-go!
Yury
вот меня это с большего и интересует... т.е. подстраивается ли таймер под синхронизацию системного времени.
Зависит от платформы, на Win AMD 64,  Linux 64 и Darwin — да
источник

М

Мерль🛠 in Go-go!
В случае остальных нужно смотреть на ассемблер в runtime пакете
источник

IA

Ivan Ablogin in Go-go!
Ребят, добрый вечер. Подскажите, как правильно вытаскивать json данные из postgres при использовании StructScan в sqlx ?
источник

DP

Daniel Podolsky in Go-go!
Мерль🛠
Зависит от платформы, на Win AMD 64,  Linux 64 и Darwin — да
а как он может нет?

он же, все же, завязан на часы реального времени
источник

Y

Yury in Go-go!
я наверное не совсем правильно сформировал задачу...
я использую либу https://github.com/robfig/cron посмотрел внутрь и увидел что логика либы такова: ищем ближайшую задачу и засыпаем по time.NewTimer до ее следующего выполнения.  и вот собственно возник вопрос насколько это точно, т.е. если я запланирую задачу на год выполнится ли она с точностью минуты, а лучше секунды.
машина если что lxc контейнер с линью
источник

М

Мерль🛠 in Go-go!
Daniel Podolsky
а как он может нет?

он же, все же, завязан на часы реального времени
Например tiny go и всякая другая экзотика
источник

М

Мерль🛠 in Go-go!
Может тупо не быть аппаратных часов, а только счётчик + тактовый генератор
источник

ВС

Владимир Столяров... in Go-go!
Yury
я наверное не совсем правильно сформировал задачу...
я использую либу https://github.com/robfig/cron посмотрел внутрь и увидел что логика либы такова: ищем ближайшую задачу и засыпаем по time.NewTimer до ее следующего выполнения.  и вот собственно возник вопрос насколько это точно, т.е. если я запланирую задачу на год выполнится ли она с точностью минуты, а лучше секунды.
машина если что lxc контейнер с линью
Я в подобном случае делал тупо но работоспособно - складывал контекст задач в базу вместе с планируемым временем и периодически её опрашивал
источник

Y

Yury in Go-go!
Владимир Столяров
Я в подобном случае делал тупо но работоспособно - складывал контекст задач в базу вместе с планируемым временем и периодически её опрашивал
а я думал просто засыпать не до выполнения задачи, а например на 50% времени, после синк делать например
источник

М

Мерль🛠 in Go-go!
Daniel Podolsky
а как он может нет?

он же, все же, завязан на часы реального времени
Это крайний пример конечно, просто это почти недокументировано, поэтому я точно знаю только про вышеперечисленные платформы
источник

DP

Daniel Podolsky in Go-go!
Yury
я наверное не совсем правильно сформировал задачу...
я использую либу https://github.com/robfig/cron посмотрел внутрь и увидел что логика либы такова: ищем ближайшую задачу и засыпаем по time.NewTimer до ее следующего выполнения.  и вот собственно возник вопрос насколько это точно, т.е. если я запланирую задачу на год выполнится ли она с точностью минуты, а лучше секунды.
машина если что lxc контейнер с линью
выполнится с той точностью, с которой указано (до наносекунды), с учетом точности системных часов и квантования их
источник

М

Мерль🛠 in Go-go!
Daniel Podolsky
выполнится с той точностью, с которой указано (до наносекунды), с учетом точности системных часов и квантования их
к сожалению не так радужно (

зависит от того, насколько забиты очереди в шедулере всё таки

ни системный ни гошный шедулеры не дают всё таки гарантированного времени переключения
источник

DP

Daniel Podolsky in Go-go!
тоже правда
источник