Size: a a a

2021 June 24

VZ

Vlad Zaa in F# Chat
Да
источник

VZ

Vlad Zaa in F# Chat
Можно в целом оба наверное использовать для интеропа
источник

IC

Ilya L Che in F# Chat
Тогда дублироваться будут. Интересно, можно ли прагмой обмазать, определяющей компилятор.
P.S. А, в фшарпе ж их вообще нет.
источник
2021 June 25

I

IdiocyAcceptance in F# Chat
Чтобы возвращать в функциях тудушки в качестве значений, на которые компилятор будет ругаться
источник

VS

Vladimir Shchur in F# Chat
    [<Benchmark>]
   member this.TaskCompletion() =
       task {
           let cts = TaskCompletionSource<int>()
           mb1.Post(MsgType1 cts)
           return! cts.Task
       }

   [<Benchmark>]
   member this.AsyncReply() =
       task {
           return! mb2.PostAndAsyncReply(fun ch -> MsgType2 ch)
       }

Принимаю ставки, кто быстрее и насколько)
источник

AH

Ayrat Hudaygulov in F# Chat
а чо за mb1 mb2?
источник

VS

Vladimir Shchur in F# Chat
    let mb1 = MailboxProcessor.Start(fun inbox ->
       let rec loop () =
           async {
               match! inbox.Receive() with
               | MsgType1 ch ->
                   ch.SetResult(1)
                   return! loop()
           }
       loop ()
       )

   let mb2 = MailboxProcessor.Start(fun inbox ->
       let rec loop () =
           async {
               match! inbox.Receive() with
               | MsgType2 ch ->
                   ch.Reply(1)
                   return! loop()
           }
       loop ()
       )
источник

P

Pavel in F# Chat
Если б было все просто, то интриги бы не было, значит AsyncReply ) быстрее)
источник

I

IdiocyAcceptance in F# Chat
Первое кажется быстрее будет
источник

VS

Vladimir Shchur in F# Chat
Мнения разделились)
источник

VS

Vladimir Shchur in F# Chat
//|         Method |       Mean |    Error |   StdDev |  Gen 0 | Gen 1 | Gen 2 | Allocated |
//|--------------- |-----------:|---------:|---------:|-------:|------:|------:|----------:|
//| TaskCompletion |   850.3 ns | 43.61 ns | 123.0 ns | 0.1698 |     - |     - |     711 B |
//|     AsyncReply | 4,171.2 ns | 81.85 ns | 127.4 ns | 0.5722 |     - |     - |    2402 B |
источник

I

IdiocyAcceptance in F# Chat
Ну ожидаемо, хз. На таких типах PostAndReply всегда антипаттерн
источник

VS

Vladimir Shchur in F# Chat
мне было интересно посмотреть - насколько быстрее)
источник

P

Pavel in F# Chat
Чот больно большая разница
источник

I

IdiocyAcceptance in F# Chat
Мне кажется ещё что стоит сюда тест с ченнелами добавить
источник

I

IdiocyAcceptance in F# Chat
Ибо мейлбокс должен им сильно проигрывать
источник

I

IdiocyAcceptance in F# Chat
Тест с ченнелами по типу варианта 1
источник

P

Pavel in F# Chat
Основное врем должно на межпоточную синхронизацию, аллокации тут копейки
источник

I

IdiocyAcceptance in F# Chat
+1.5кб аллокаций на операцию - не копейки)
источник

I

IdiocyAcceptance in F# Chat
Любой асинк аллоцирует до жопы на самом деле (ни для кого не секрет, в общем то)
источник