Hog
Анал. Изи рефакторинг.
Ayrat
вроде так было
руки дошли | Method | MessageCount | Mean | Error | StdDev | Median | Gen 0 | Gen 1 | Gen 2 | Allocated | |----------------- |------------- |-----------:|------------:|-----------:|-----------:|-------:|-------:|------:|----------:| | HopacEventStream | 10000 | 3.609 ms | 7.1450 ms | 2.5480 ms | 2.754 ms | 1.9531 | 1.9531 | - | 1.86 MB | | ExpMulticast | 10000 | 1.658 ms | 0.6564 ms | 0.2341 ms | 1.737 ms | - | - | - | 1.17 MB | | HopacEventLock | 10000 | 1.359 ms | 0.5632 ms | 0.2009 ms | 1.413 ms | - | - | - | 1.52 MB | | HopacEventStream | 100000 | 37.984 ms | 75.0276 ms | 26.7556 ms | 32.420 ms | - | - | - | 16.44 MB | | ExpMulticast | 100000 | 15.793 ms | 10.1866 ms | 3.6326 ms | 16.192 ms | - | - | - | 10.78 MB | | HopacEventLock | 100000 | 16.372 ms | 17.2010 ms | 6.1340 ms | 14.207 ms | - | - | - | 10.19 MB | | HopacEventStream | 1000000 | 188.210 ms | 111.0011 ms | 39.5841 ms | 186.336 ms | - | - | - | 254.45 MB | | ExpMulticast | 1000000 | 139.856 ms | 55.9584 ms | 19.9553 ms | 138.022 ms | - | - | - | 102.8 MB | | HopacEventLock | 1000000 | 193.142 ms | 266.1378 ms | 94.9073 ms | 165.277 ms | - | - | - | 97.55 MB |
Ayrat
а кот можешь закинуть?
module Exp = open Hopac.Experimental type MulticastPub<'T>() = let mch = Multicast.create() |> run member _.Pub(value: 'T) = Multicast.multicast mch value |> queue member _.Sub(fn: 'T -> unit) = Multicast.port mch >>= (fun mport -> Job.iterateServer mport (fun x -> Multicast.recv x >>- fn >>-. x ) )
Ayrat
но сам мультикаст твикнутый, там инкаминг ченел на мейлбокс заменил
Ayrat
type MChan<'a> = { ReqMb: Mailbox<Req<'a>> RepCh: Ch<MPort<'a>> }
Ayrat
вот от этого изменения надо сделать пару ченжей в коде мультикаста
Ayrat
и все работает.
Vladislav
а у тебя еще HopacEventStream другой какой-то
Vladislav
вроде
Ayrat
мне понравилась идея подписки делается IVar() на заполнение которого вешаются все подписчики как только приходит Pub, мы заполняем старый IVar (и разблокируем подписчиков) и создаем новый, который рассылаем подписчкам чтобы они знали куда переподписаться
Vladislav
да хз, я б забил
типо мультикаст все равно лучше?
Vladislav
1000000 | 193.142 ms | 266.1378 ms кекнул с ошибки с локом
Shub
фарш выпал с радаров
потому что jet.com is no more. он на радары попал чисто из-за бригадинга
Hog
Ну, зато теперь у нас есть шведские или ещё какие финские перфораторы и болгарки!
Vasily
Жидкие гвозди
Hog
Я настолько пристально ассортимент не изучал!
Anonymous
Жидкие гвозди
мож жареные?
Hog
я пропустила какую-то шутейку?
Какие шутки - сайт по продаже этой фигни на фейбле
Анна
аааа!
Анна
активно нанимает на F#?
Hog
Не думаю, но как пример успешного ф#-фуллстека оч даже ничего!
Stas
Не думаю, но как пример успешного ф#-фуллстека оч даже ничего!
Я чет пропустил, на F# можно во фронт? Ну т.е веб. Про хсамарин я слышал)
Vasily
fable
Hog
Можно и во фронт и в бэк и во все дыры
Hog
Типа билд на фейке
Stas
Можно и во фронт и в бэк и во все дыры
принцип , что и у ts, компилится в джс и дальше крутится в браузере?
Hog
Йеп
Hog
Всё равно китайские небось.
Ичо? Ифоны тоже китайские
Крылатый
Ичо? Ифоны тоже китайские
А что в них шведского?
Hog
А что в них шведского?
Подставка и зарядка из икеи
Крылатый
Hog
Каков вопрос - таков ответ!
Vladislav
https://danluu.com/branch-prediction/
Vladislav
https://github.com/Hopac/Hopac/blob/master/Libs/Hopac.Experimental/Pipe.fsi
https://github.com/Hopac/Hopac/blob/master/Libs/Hopac.Experimental/Util.fs
Vladislav
Больше этот файл нравится
Ilya
Хм, а мне чот в этом году опрос не приходил. Ну и ладно
Может уже забыл? В феврале дело было.
Shub
наш чятик куда-то протекает
Shub
Так Айрат только топит за фарш, а пишет на других языках
Shub
иногда мне кажется, что так делают все кто топит за фарш
Shub
кроме того, Айрат, оказывается, объект какого-то тайного культа
Anonymous
звезда дотнет чата
Shub
не удивлюсь, если у них где-то в шкафу стоит картонная коробка с газетными вырезками, неуклюжими карандашными рисунками и оторванными кукольными головами
Anonymous
скоро стикеры подвезут
Vasily
Айрат бабай
Vladislav
Друзья, существует траспайлер из C# в Pascal?
Vladimir
кстати не так и маловероятно что можно сделать) из шарпа в вижул бейсик, оттуда в обычный бейсик, а оттуда в паскаль)
Mark
Я полез в гугол проверить, и нашёл. https://www.gtsoftware.com/products/netcobol/netcobol-for-net/
Mark
Оказывается, даже COBOL под .NET есть.
Ayrat
Оказывается, даже COBOL под .NET есть.
https://en.wikipedia.org/wiki/List_of_CLI_languages
Mark
OCaml не хватает!
Mark
Хотя, постойте-постойте :)
Nikolay
Мне кажется, или меня где-то тут кто-то звал? 🤔
Romɑn
https://hackage.haskell.org/package/hs-dotnet
Ilya
Мне кажется, или меня где-то тут кто-то звал? 🤔
Звали, там вопрос про фунограм был, но он куда-то пропал.
Doge
https://hackage.haskell.org/package/hs-dotnet
Лол, а с неткором работает?
Mark
народ, рассказываю сейлзу про то почему F# збс, вот пока что все что я вспомнил, может дополните: 1. прагматичность - легко менять парадигму, стиль проргаммирования в зависимости от ситуации 2. хороший анализ кода, который не позволяет "выстрелить в ногу" 3. чистый код - без мусора, хорошо читаемый 4. интеграция с .NET , с другими языками на .NET, можно переиспользовать библиотеки из других языков 5. автоматически вычисляемые типы - то есть компилятор сам за тебя вычислит типы, если это возможно. 6. Более строгое структурирование кода, чем в c#
Vasily
Более строгое структурирование кода, чем в c#
Mark
точно, это тоже киллер фича
Vasily
И кода в разы меньше
Vasily
У меня в проекте примерно на порядок
Mark
(это в 3 пункт входит)
Vasily
Меньше кода - меньше багов
Mark
можешь обьективно оценить, сколько было бы кода на c#?
Vasily
порядка 1кк строк
Mark
а сейчас 70к
Vladimir
https://www.slideshare.net/Odin_cool/why-f - я презентацию делал 2 года назад)