Сообщение Re[2]: Вопрос по boost lockfree queue от 26.04.2015 16:00
Изменено 26.04.2015 16:02 Engler
A>потому что вы считаете странное. Что хотели посчитать то?
E> Пытаюсь замерить среднее время сообщения в очереди.
Если говорить другими словами, то Latency.
A> Например, если consumer начнёт работать на полсекунды позже чем producer, то результат будет ещё более феерический
Если consumner начнет работать на полсекунды позже, то должно получится что сообщение пролежит в очередит на пол секунды дольше, и всего то.
A>, даже если producer и consumer отработают за 0 секунд.
Я наверное, не совсем понимаю, что вы имеете ввиду. Допутсим.
Запустили Producer. Он сгенерировал сообщение. Записали в него, что оно сгенерировалось во время t1.
Запустили Consumer (путь даже не секунду позже ). Вычитали из очереди сообщение. Получили текущее время t2.
t2 — t1 = время, сколько соощение провело в сети.
A>как раз таки наоборот, real time уменьшился фактически на величину sys time, а сам sys time ушёл в ноль, что логично. В чём странности?
Смотрите, что я имею ввиду:
boost::lockfree::queue is lockfree
produced 2000000 objects.
consumed 2000000 objects.
Total time 67803937295 ns.
Messages 33901 ns per msg
real 0m0.541s
user 0m1.603s
sys 0m0.002s
Total time это то что я насуммировал счетчиком.
67,803,937,295 наносекунд = 67.80 секунд. Т.е получается, что время считается где-то неправильно.
А само приложение отработало по time за 1.6 секунды.
И так считается БЕЗ locka.
а если Lock ставить, то суммируемое время и время утилитой совпадают. Вот как раз в этом странность и заключается.
E> Пытаюсь замерить среднее время сообщения в очереди.
Если говорить другими словами, то Latency.
A> Например, если consumer начнёт работать на полсекунды позже чем producer, то результат будет ещё более феерический
Если consumner начнет работать на полсекунды позже, то должно получится что сообщение пролежит в очередит на пол секунды дольше, и всего то.
A>, даже если producer и consumer отработают за 0 секунд.
Я наверное, не совсем понимаю, что вы имеете ввиду. Допутсим.
Запустили Producer. Он сгенерировал сообщение. Записали в него, что оно сгенерировалось во время t1.
Запустили Consumer (путь даже не секунду позже ). Вычитали из очереди сообщение. Получили текущее время t2.
t2 — t1 = время, сколько соощение провело в сети.
A>как раз таки наоборот, real time уменьшился фактически на величину sys time, а сам sys time ушёл в ноль, что логично. В чём странности?
Смотрите, что я имею ввиду:
boost::lockfree::queue is lockfree
produced 2000000 objects.
consumed 2000000 objects.
Total time 67803937295 ns.
Messages 33901 ns per msg
real 0m0.541s
user 0m1.603s
sys 0m0.002s
Total time это то что я насуммировал счетчиком.
67,803,937,295 наносекунд = 67.80 секунд. Т.е получается, что время считается где-то неправильно.
А само приложение отработало по time за 1.6 секунды.
И так считается БЕЗ locka.
а если Lock ставить, то суммируемое время и время утилитой совпадают. Вот как раз в этом странность и заключается.
Re[2]: Вопрос по boost lockfree queue
A>потому что вы считаете странное. Что хотели посчитать то?
E> Пытаюсь замерить среднее время сообщения в очереди.
Если говорить другими словами, то Latency.
A> Например, если consumer начнёт работать на полсекунды позже чем producer, то результат будет ещё более феерический
Если consumner начнет работать на полсекунды позже, то должно получится что сообщение пролежит в очередит на пол секунды дольше, и всего то.
A>, даже если producer и consumer отработают за 0 секунд.
Я наверное, не совсем понимаю, что вы имеете ввиду. Допутсим.
Запустили Producer. Он сгенерировал сообщение. Записали в него, что оно сгенерировалось во время t1.
Запустили Consumer (путь даже не секунду позже ). Вычитали из очереди сообщение. Получили текущее время t2.
t2 — t1 = время, сколько соощение провело в очереди.
A>как раз таки наоборот, real time уменьшился фактически на величину sys time, а сам sys time ушёл в ноль, что логично. В чём странности?
Смотрите, что я имею ввиду:
boost::lockfree::queue is lockfree
produced 2000000 objects.
consumed 2000000 objects.
Total time 67803937295 ns.
Messages 33901 ns per msg
real 0m0.541s
user 0m1.603s
sys 0m0.002s
Total time это то что я насуммировал счетчиком.
67,803,937,295 наносекунд = 67.80 секунд. Т.е получается, что время считается где-то неправильно.
А само приложение отработало по time за 1.6 секунды.
И так считается БЕЗ locka.
а если Lock ставить, то суммируемое время и время утилитой совпадают. Вот как раз в этом странность и заключается.
E> Пытаюсь замерить среднее время сообщения в очереди.
Если говорить другими словами, то Latency.
A> Например, если consumer начнёт работать на полсекунды позже чем producer, то результат будет ещё более феерический
Если consumner начнет работать на полсекунды позже, то должно получится что сообщение пролежит в очередит на пол секунды дольше, и всего то.
A>, даже если producer и consumer отработают за 0 секунд.
Я наверное, не совсем понимаю, что вы имеете ввиду. Допутсим.
Запустили Producer. Он сгенерировал сообщение. Записали в него, что оно сгенерировалось во время t1.
Запустили Consumer (путь даже не секунду позже ). Вычитали из очереди сообщение. Получили текущее время t2.
t2 — t1 = время, сколько соощение провело в очереди.
A>как раз таки наоборот, real time уменьшился фактически на величину sys time, а сам sys time ушёл в ноль, что логично. В чём странности?
Смотрите, что я имею ввиду:
boost::lockfree::queue is lockfree
produced 2000000 objects.
consumed 2000000 objects.
Total time 67803937295 ns.
Messages 33901 ns per msg
real 0m0.541s
user 0m1.603s
sys 0m0.002s
Total time это то что я насуммировал счетчиком.
67,803,937,295 наносекунд = 67.80 секунд. Т.е получается, что время считается где-то неправильно.
А само приложение отработало по time за 1.6 секунды.
И так считается БЕЗ locka.
а если Lock ставить, то суммируемое время и время утилитой совпадают. Вот как раз в этом странность и заключается.