Size: a a a

cxx.Дискуссионная

2020 April 20

RM

Roy Mustang in cxx.Дискуссионная
@h4cktill это нормально что lock'и такие дорогие? 3 потока 10к задач дольше чем 1 поток обрабатывают раз в 1000, хотя я и использую неблокирующий queue.
Я подумал, может у меня реализация хварает, а оказалось что нет, я запустил теста ради в этих же 3х потоках потом и другую задачу, просто вытаскивание данных из std::queue, это дает такое же время примерно как у моей реализации. Не пойму, где то что-то не так, почему то локи дорогие, хоть lock_guard и уступает моей реализации, но там не сильная разница
В общем, не пойму, откуда в однопотоке время 0.00006 ms на выполнение, а в многопотоке с 3мя потоками аж 6 секунд.

Я представляю это так, если у меня неблокирующие потоки, то они должны выполняться как минимум близко к однопоточной реализации, а тут совсем иначе, они выполняются точно так же как и блокирующие, не знаю в чем тут проблема, может кто объяснит
источник

O

Ostrich Corpsе in cxx.Дискуссионная
Рой ждёт 15 минут
источник

P+

PAM3ES ++ in cxx.Дискуссионная
wti 1.5$
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
PAM3ES ++
wti 1.5$
4.77
Ох лол, таки 1.76
источник

TS

Till Schneider in cxx.Дискуссионная
Roy Mustang
@h4cktill это нормально что lock'и такие дорогие? 3 потока 10к задач дольше чем 1 поток обрабатывают раз в 1000, хотя я и использую неблокирующий queue.
Я подумал, может у меня реализация хварает, а оказалось что нет, я запустил теста ради в этих же 3х потоках потом и другую задачу, просто вытаскивание данных из std::queue, это дает такое же время примерно как у моей реализации. Не пойму, где то что-то не так, почему то локи дорогие, хоть lock_guard и уступает моей реализации, но там не сильная разница
В общем, не пойму, откуда в однопотоке время 0.00006 ms на выполнение, а в многопотоке с 3мя потоками аж 6 секунд.

Я представляю это так, если у меня неблокирующие потоки, то они должны выполняться как минимум близко к однопоточной реализации, а тут совсем иначе, они выполняются точно так же как и блокирующие, не знаю в чем тут проблема, может кто объяснит
Юзай shared_mutex
источник

I

Ioann_V in cxx.Дискуссионная
Roy Mustang
@h4cktill это нормально что lock'и такие дорогие? 3 потока 10к задач дольше чем 1 поток обрабатывают раз в 1000, хотя я и использую неблокирующий queue.
Я подумал, может у меня реализация хварает, а оказалось что нет, я запустил теста ради в этих же 3х потоках потом и другую задачу, просто вытаскивание данных из std::queue, это дает такое же время примерно как у моей реализации. Не пойму, где то что-то не так, почему то локи дорогие, хоть lock_guard и уступает моей реализации, но там не сильная разница
В общем, не пойму, откуда в однопотоке время 0.00006 ms на выполнение, а в многопотоке с 3мя потоками аж 6 секунд.

Я представляю это так, если у меня неблокирующие потоки, то они должны выполняться как минимум близко к однопоточной реализации, а тут совсем иначе, они выполняются точно так же как и блокирующие, не знаю в чем тут проблема, может кто объяснит
у тебя ТредПул?
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
⚡️⚡️Нефть марки WTI прямо сейчас
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
PAM3ES ++
wti 1.5$
Грац
источник

TS

Till Schneider in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
⚡️⚡️Нефть марки WTI прямо сейчас
Лол, обнулилась нефть, каеф, ура, давайте еще доллар за сотку рубасиков и норм
источник

Е

Егор in cxx.Дискуссионная
Till Schneider
Лол, обнулилась нефть, каеф, ура, давайте еще доллар за сотку рубасиков и норм
Жду гостей, у нас всё стабильно
источник

RM

Roy Mustang in cxx.Дискуссионная
Воо, я смог добиться своего, не понял в чем проблема была, вот новые измерения бенчей

fUpdate - это реализация моей идеи с nonblocking + аля корутины (3 потока)
fUpdate1 - это упрощенная реализация, делает тоже самое что в main (но использует lock_guard) (задача у данного метода дешевле чем у метода выше)
main - однопоточное выполнение, циклом проходит по 10000 задачам в std::queue и вызывает pop (никаких методов push, как в fUpdate не используется)

Общее описание:
3 потока, 10 000 задач для всех
источник

I

Ioann_V in cxx.Дискуссионная
Ну, вроде как к Уралс Российскому отношения не имеет. Ладно, пойду дальше собирать себе новый комп.
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Same shit
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ioann_V
Ну, вроде как к Уралс Российскому отношения не имеет. Ладно, пойду дальше собирать себе новый комп.
Брент не российский)
источник

P+

PAM3ES ++ in cxx.Дискуссионная
источник

TS

Till Schneider in cxx.Дискуссионная
⚡️Цена нефти WTI торгуется в отрицательных значениях - (минус) -7,5 долларов
источник

O

Ostrich Corpsе in cxx.Дискуссионная
Это мем
источник

EP

Egor Pugin in cxx.Дискуссионная
Roy Mustang
Воо, я смог добиться своего, не понял в чем проблема была, вот новые измерения бенчей

fUpdate - это реализация моей идеи с nonblocking + аля корутины (3 потока)
fUpdate1 - это упрощенная реализация, делает тоже самое что в main (но использует lock_guard) (задача у данного метода дешевле чем у метода выше)
main - однопоточное выполнение, циклом проходит по 10000 задачам в std::queue и вызывает pop (никаких методов push, как в fUpdate не используется)

Общее описание:
3 потока, 10 000 задач для всех
сделай больше задач, чтобы время было порядка секунд или десятков секунд
источник

RM

Roy Mustang in cxx.Дискуссионная
Egor Pugin
сделай больше задач, чтобы время было порядка секунд или десятков секунд
Мне впадлу, работать нужно я и так день просрал на все это
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Пфффф
источник