Сообщение Re[2]: Время в программе от 10.06.2016 13:41
Изменено 10.06.2016 13:45 kov_serg
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, LaptevVV, Вы писали:
LVV>>Надо поизмерять время для построения графиков в статью. Поэтому миллисекунды вполне сгодятся...
Pzz>QueryPerformanceCounter()
Pzz>Миллисекунды, кстати, не годятся. Рано или поздно захочется померить "расстояние" между принятыми подряд пакетами, а там времена микросекундные.
На многоядерных AMD был прикол с QueryPerformanceCounter
Этот счетчик для каждого ядра свой и ходят они в зависимости от частоты ядра. А она может меняться. Даже патч выпучкали котрый их синхронизировал переодически.
В результате когда на одной из машин стали получать ход времени в обратну сторону все очень повеселились. Пришлось внедрить костыль в виде установки affinity на одно ядро в таких случаях.
В результате в винде самый вменяемый таймер оказался мультимедийный таймер
его точность хода 1мс, у GetTickCount шаг 16мс (но бывает и 10мс)
Вообще посмотрите это http://www.cise.ufl.edu/~sb3/files/pmc.pdf
Pzz>Здравствуйте, LaptevVV, Вы писали:
LVV>>Надо поизмерять время для построения графиков в статью. Поэтому миллисекунды вполне сгодятся...
Pzz>QueryPerformanceCounter()
Pzz>Миллисекунды, кстати, не годятся. Рано или поздно захочется померить "расстояние" между принятыми подряд пакетами, а там времена микросекундные.
На многоядерных AMD был прикол с QueryPerformanceCounter
Этот счетчик для каждого ядра свой и ходят они в зависимости от частоты ядра. А она может меняться. Даже патч выпучкали котрый их синхронизировал переодически.
В результате когда на одной из машин стали получать ход времени в обратну сторону все очень повеселились. Пришлось внедрить костыль в виде установки affinity на одно ядро в таких случаях.
В результате в винде самый вменяемый таймер оказался мультимедийный таймер
его точность хода 1мс, у GetTickCount шаг 16мс (но бывает и 10мс)
Вообще посмотрите это http://www.cise.ufl.edu/~sb3/files/pmc.pdf
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, LaptevVV, Вы писали:
LVV>>Надо поизмерять время для построения графиков в статью. Поэтому миллисекунды вполне сгодятся...
Pzz>QueryPerformanceCounter()
Pzz>Миллисекунды, кстати, не годятся. Рано или поздно захочется померить "расстояние" между принятыми подряд пакетами, а там времена микросекундные.
На многоядерных AMD был прикол с QueryPerformanceCounter
Этот счетчик для каждого ядра свой и ходят они в зависимости от частоты ядра. А она может меняться. Даже патч выпучкали котрый их синхронизировал переодически.
В результате когда на одной из машин стали получать ход времени в обратну сторону все очень повеселились. Пришлось внедрить костыль в виде установки affinity на одно ядро в таких случаях.
В результате в винде самый вменяемый таймер оказался мультимедийный таймер
его точность хода 1мс, у GetTickCount шаг 16мс (но бывает и 10мс)
Вообще посмотрите это
http://www.cise.ufl.edu/~sb3/files/pmc.pdf
https://software.intel.com/en-us/articles/intel-performance-counter-monitor
Pzz>Здравствуйте, LaptevVV, Вы писали:
LVV>>Надо поизмерять время для построения графиков в статью. Поэтому миллисекунды вполне сгодятся...
Pzz>QueryPerformanceCounter()
Pzz>Миллисекунды, кстати, не годятся. Рано или поздно захочется померить "расстояние" между принятыми подряд пакетами, а там времена микросекундные.
На многоядерных AMD был прикол с QueryPerformanceCounter
Этот счетчик для каждого ядра свой и ходят они в зависимости от частоты ядра. А она может меняться. Даже патч выпучкали котрый их синхронизировал переодически.
В результате когда на одной из машин стали получать ход времени в обратну сторону все очень повеселились. Пришлось внедрить костыль в виде установки affinity на одно ядро в таких случаях.
В результате в винде самый вменяемый таймер оказался мультимедийный таймер
его точность хода 1мс, у GetTickCount шаг 16мс (но бывает и 10мс)
Вообще посмотрите это
http://www.cise.ufl.edu/~sb3/files/pmc.pdf
https://software.intel.com/en-us/articles/intel-performance-counter-monitor