
Ivan
14.09.2018
20:28:13
Похалявить хотел.

Arseniy
14.09.2018
20:28:33
ну тогда надо просто устраивать аля знатоки. вопрос поставлен, дальше все накидывают вариантов, а потом смотрим, кто оказался прав.
в целом фишарповый тип фунции из-за каррирования мне всегда представляся чем-то менее эффективным, чем обычный делегат.
но тем не менее, есть же hopac, который якобы выносил по производительности таски из додиеза

Ivan
14.09.2018
20:30:39
Мне слегка обидно, что для с шсарпа это разьжевываетя, а для нас нет

Google

Arseniy
14.09.2018
20:31:03
что именно, я без контекста

Ivan
14.09.2018
20:33:03
Ну автоматы Что в yield, что в async. Но ведь работать они должны одинаково (ну почти).

Ayrat
14.09.2018
20:34:41

Arseniy
14.09.2018
20:34:58

Ivan
14.09.2018
20:35:59
А я и не спорю. Айрат ты читал ядро гопака?

Ayrat
14.09.2018
20:36:05

Ivan
14.09.2018
20:37:50
Ну там же дичайшая оптимизация чуть ли не на унменеджет (их нет). Вообще это самое то, чтоб понять, насколько неэффективно написан рантайм.

Arseniy
14.09.2018
20:38:23

Ivan
14.09.2018
20:38:58
Хопак как раз делал гений. Учусь у него.(пытаюсь, пока не осилил)

Ayrat
14.09.2018
20:40:13
да, он (автор гопака) умудрился достаточно простым кодом сделать какие-то дико сложные и крайне эффективные абстракции.
Код ядра можно в рамку обводить и на стену вешать

Roman
14.09.2018
20:42:39

Google

Ivan
14.09.2018
20:42:42

Roman
14.09.2018
20:43:17
Жива надежда, что я сделаю его к докладу на весенний DotNext, но вообще пока ничего а эту сторону не делаю

Roman
14.09.2018
20:43:24

Roman
14.09.2018
20:44:13

Arseniy
14.09.2018
20:44:16

Ayrat
14.09.2018
20:45:53

Arseniy
14.09.2018
20:46:05

Ayrat
14.09.2018
20:46:15
и возможностей поболе чем у нугета AsyncSeq
и ещё много чего поболе :D

Arseniy
14.09.2018
20:47:43

Ayrat
14.09.2018
20:48:00

Arseniy
14.09.2018
20:48:20
то что я смотрел, его примеры были быстрее на гопаке, чем таски сишурпа

Ayrat
14.09.2018
20:49:18
таски очень хороши в большинстве случаев. Особенно на малом кол-ве задач. И гопак тут может даже посасывать.
Но как только задач становится от нескольких сотен, то таски уезжают в трубу и по скорости, и по памяти
эти автоматы начинают такой мемори трафик генерить, обожемой просто
Дефолтный ТаскШедулер плоховато справляется с большим кол-вом задач. Хотя его там костылями со всех сторон обложили. Очень сложный конструкт

Ivan
14.09.2018
20:51:46
там стейт машина. Причем почти не ыидимая. Там математика многих лет Concurrent ML. Который и сделал го чуть не самым быстрым языком для конкуренног программирования. Хотя ТАМ (в го) только минимум

Arseniy
14.09.2018
20:52:06
ну сложный, да. но какгбы это же не объясняет природу вещей. почему таски генерируют трафик, а калбеки и комбинаторы калбеков гопака — нет

Ivan
14.09.2018
20:52:41
Потому что они синхронные!

Arseniy
14.09.2018
20:53:21
что за новости

Ivan
14.09.2018
20:58:46
Посмотри о чем речь в манифесте.

Google

Roman
14.09.2018
20:58:50

Arseniy
14.09.2018
20:59:45

Ayrat
14.09.2018
21:00:15
Я не могу сказать что я до конца понимаю что там в ядре происходит

Ivan
14.09.2018
21:01:01
https://github.com/Hopac/Hopac/blob/master/Docs/Programming.md

Ayrat
14.09.2018
21:01:21
там лучше есть
https://github.com/Hopac/Hopac/blob/master/Docs/Internals.md

Arseniy
14.09.2018
21:04:02
я енто всё читал, правда давно.
тут дело в том, что я гопак ни разу не использовал

Ayrat
14.09.2018
21:04:57
Это норма!

Arseniy
14.09.2018
21:05:09
как и проект nfx, который тоже якобы сияет невероятными штуками
но у меня есть очень большой скепсис как минимум насчет того, насколько это универсальные вещи

Roman
14.09.2018
21:06:34
Так надо попробовать)

Arseniy
14.09.2018
21:08:09
ну nfx я скорее читал, там есть много хороших вещей, хоть этого чувака и обсмеяли на хабре.
гопак слишком низкоуровневая штука, чтобы была бы мне интересна
напомните, как называлась библиотека вроде от сосздателей mbrace
которыя цепочки вычислений над коллекциями сворачивала?

Ivan
14.09.2018
21:14:12
Начал переводить, но смычл потерял ? https://github.com/ijsgaus/translations/blob/hopac/Hopac/Programming.md

Arseniy
14.09.2018
21:15:52

Ivan
14.09.2018
21:16:06
Бывало
Для себя не в продакшене

Google

Arseniy
14.09.2018
21:16:43
просто имхо интересней было именно практику написать

Ayrat
14.09.2018
21:16:48

Roman
14.09.2018
21:17:13

Ayrat
14.09.2018
21:17:16
И ещё свои стримы, пулы и прочая дивность

Arseniy
14.09.2018
21:17:40

Ivan
14.09.2018
21:17:56
Я тебе Айрат уже устал завидовать ?

Arseniy
14.09.2018
21:18:09
ты зря

Ayrat
14.09.2018
21:18:50

Arseniy
14.09.2018
21:19:48
да, норм, согласен. сам джва года писал etl. тут как раз в рамках машины интересно параллелиться.
и все равно etl не упирается в шедулер с тасками

Ayrat
14.09.2018
21:20:58
У меня етл в облаке на ажурных функциях. Поэтому он должен быть быстрый и не жрать память. Любая либа для работы со стримами справилась бы, но в гопаке она лучше чем асинксек от Сайма. Такие дела

Ivan
14.09.2018
21:23:09
И не расказвыай. Всеж быть первым не значит самым быстрым.

Ayrat
14.09.2018
21:23:54

Roman
14.09.2018
21:24:13

Ivan
14.09.2018
21:24:29
Сайм. В дотнете

Arseniy
14.09.2018
21:27:02
Ayrat есть оценки сколько гопак принес пользы против созданных проблем?

Ayrat
14.09.2018
21:29:43

Ivan
14.09.2018
21:31:23
Ну а я о чем?

Ayrat
14.09.2018
21:32:47
Ayrat есть оценки сколько гопак принес пользы против созданных проблем?
Пользы много. Большой набор примитивов позволяет легко построить хоть звездолет и причем очень быстро.
Стримы имеют богатый функционал, позволяют не нагружать память при обработке больших датасетов.
Интероп хоть с тасками, хоть с асинками.
Минусы - это гопак, никто его не знает. Но мне насрать

Google

Ivan
14.09.2018
21:34:00
Кстати, Айрат, с тебя что нибудь о стримах в гопаке. А то нет ничего.

Ayrat
14.09.2018
21:34:04
У меня на работе один хер, что гопак, что асинки) на фшарпе никто не пишет кроме меня)

Roman
14.09.2018
21:34:54

Ayrat
14.09.2018
21:34:59
У меня свои стримы, на основе гопаковских, но не персистентные

Roman
14.09.2018
21:35:02
Со скринкастами

Ivan
14.09.2018
21:35:16
Ну ведь ты с ними работать умеешь. Хотя бы репу с примерами.

Arseniy
14.09.2018
21:35:29
>выгребал в 1000 потоков какое-то апи. Нормас там мегабит 500 тянуло.
что ты там тянул, в каком формате, чтобы на фоне такой нагрузки можно было заметить накладные на тасочки?

Ivan
14.09.2018
21:36:53
Сделаешь, я перевод закончу (шантаж).

Ayrat
14.09.2018
21:37:03

Arseniy
14.09.2018
21:37:24
ну то есть вопрос производительности снимается?

Ayrat
14.09.2018
21:37:26
Стримы взял, вжух вжух, готово
А вот память тыща тасок съест бодро

Arseniy
14.09.2018
21:39:23
а спорим 1000 httprequestmessage съест их на 3 порядка быстрее?
а ответы могут съесть быстрее на 4 порядка, если тебе там реально данные приходят?
а процессинг на все это еще накатит х2 минимум

Ayrat
14.09.2018
21:40:16
Давай сократим и сразу к делу. Твой поинт?

Arseniy
14.09.2018
21:41:04
мой пойнт, что на твоих нагрузках ты бы не видел разницы ни в памяти ни в производительности от инфраструктуры языка, какую бы ты не выбрал

Ivan
14.09.2018
21:41:10
Спорим, я на ассемблере быстрее что то несложное напишу? А кот поддерживать будет по фигу..