Nikolay
Короче так даже больше лол
Vladislav
И как быстро обрабатывают сообщения
Сейчас ты измеряешь все сразу и эти смысла не имеет
Nikolay
По сути я измеряю память
Nikolay
Меня больше это волнует
Nikolay
И пока результаты не радуют
Hog
Массив таск комплишонов
Nikolay
Вопрос про цикл остаётся открытым
Nikolay
Я чет не могу придумать как
Hog
Массив мейлбоксов
Nikolay
Скорее всего он не будет прям в чистый while , разворачивать из-за асинка
Nikolay
Хотя появилось идея как обойти можно попробовать, через коллбэк
Vladislav
Лучше Бенчи нормальные напиши
Nikolay
ok?
Nikolay
1kk
Nikolay
Как избавиться от аллокаций?
Vasily
В данном случае никак
Vasily
Или хотя бы incr вынеси наружу
Nikolay
Плохо
Vladislav
Напоминаю что сейчас все се в лапшу колбеков превращаются
Vladislav
И скорее всего срут в память линейно от количества их выполнений
Vasily
Со стейт машинами будет получше ситуация, да
Nikolay
Вот с рекурсией
Roman
@omgszer а гопак в модель акторов умеет?
Vladislav
Да там есть Mailbox
Vladislav
Мини
Nikolay
А как-то переписать используя таски можно?
Roman
Да там есть Mailbox
это мне было?)
Vladislav
Нужно понимать что СЕ все равно насрут в хип
Vladislav
Он писал пример сегодня
Roman
ну я в вашем угаре бенчей не все усмотрел)
Nikolay
ok?
Это
Vladislav
На затяни таскбилдер
Nikolay
На затяни таскбилдер
Ну там же такая же фигня
Nikolay
Только чуть лучше
Vladislav
Тогда нет
Nikolay
Тогда нет
Ты делал бенч?
Vladislav
Ну я про переписать на таски
Nikolay
Так, сек
Nikolay
В фшарпе есть гото?
Ilya
Неа, Сайм против. Но это не точно.
Viacheslav
https://youtu.be/Uu3SWlR6vq4
Я видел сон, он был реален. Найс, вспомнил, прослезился
Nikolay
Неа, Сайм против. Но это не точно.
https://github.com/dotnet/fsharp/pull/6634
Nikolay
Тут увидел просто
Nikolay
member __.MoveNext() = match (pc) with | 1 -> goto L1 | 2 -> goto L2 | _ -> goto L0 L0: ...
Nikolay
Что это такое
Nikolay
Кстати надо жобы гопака проверить на аллокации
Vladislav
В фшарпе есть гото?
Можно через инлайн ил захуяить поидее
Vladislav
Джампы
Ilya
Note you can't write this kind of code directly in F# - there is no goto and the goto often jump directly into code resuming from the last step of the state machine. Полу-псевдокод.
Vladislav
Vladislav
Попробуй
Vladislav
Не марку а гото
Vladislav
Или марку и потом инлайн ил
Ilya
А вот добавили бы goto!
Nikolay
Можно попробовать кстати сделать даже функции для этого
Vladislav
ну инлайн функцию на тег и одну на переход
Nikolay
Da
Nikolay
Нужно как-то номер инструкции получить
Nikolay
br.s IL_0003
Nikolay
[<Benchmark>] member x.LoopJob() = let count = x.CountMessages let tcs = TaskCompletionSource<int>() job { let mutable c = 0 let incr v = job { return c + v } for i in 1 .. count do let! v = incr i c <- v tcs.SetResult(c) } |> start tcs.Task
Nikolay
stack overflow
Nikolay
Nikolay
Короче сложно, гопак видимо тоже будет срать, но в два раза меньше
Nikolay
Хз почему падает с stackoverflow
Nikolay
Даже в три
Nikolay
Почти
Nikolay
Чо делать, как жить, где перформанс найти
Igor
Тут кто-то говорил, что это неправда что F# хорошо подходит для чего то А вон они у себя в блоге сами даже написали: the best language for data science and analytical work (more on this in future updates!) https://devblogs.microsoft.com/dotnet/f-5-update-for-net-5-preview-4/
Viacheslav
👍🏻
О, они в эпл мюзик есть! Скачал себе
Nikolay
Вообще смотрю гопак, такая крутая штука, но полузаброшена :(