Ok I read your email, and I can confirm that the benchmark in the Akka.net
source tree I linked you is exactly what you described.

I was unclear how to implement the initial n messages since communication
is synchronous in Hopac. I believe this is done to maximize Akka's test
performance through their Throughput property.

Don't accept the pull request (if you ever want to) yet as I indeed have
removed the selective branch from my code which netted significant
performance improvements.

I will try again with the combinator + hmm... will review everything :D

Thanks again!


On Tue, Mar 25, 2014 at 8:05 AM, David Grenier <davidgrenier@gmail.com>wrote:

> Hi Vasily,
>
> I haven't read your email yet just woke up (but I will very much do so).
> I'm still only at page 60 in Concurrent ML and there's so much I want to
> know.
>
> This is a port of the benchmark found in Akka.NET repo:
> https://github.com/rogeralsing/akka.net/tree/master/Examples/Benchmark.PingPong
>
>
> On Tue, Mar 25, 2014 at 1:42 AM, Vasily Kirichenko <
> notifications@github.com> wrote:
>
>> In Benchmarks/PingPongAkka/PingPongAkka.fs:
>>
>> > +open Hopac
>> > +open Hopac.Job.Infixes
>> > +open Hopac.Alt.Infixes
>> > +
>> > +let workerThreads, _ = System.Threading.ThreadPool.GetAvailableThreads()
>> > +
>> > +let green, red, gray =
>> > +    let setColor color () = Console.ForegroundColor <- color
>> > +    setColor ConsoleColor.Green, setColor ConsoleColor.Red, setColor ConsoleColor.Gray
>> > +
>> > +green()
>> > +printfn "Hopac port"
>> > +gray()
>> > +printfn "Worker threads: %i" workerThreads
>> > +printfn "OSVersion: %A" Environment.OSVersion
>> > +printfn "ProcessorCount: %A" Environment.ProcessorCount
>>
>> Environment.ProcessorCount is always = 60 on a >= 60 core machines.
>>
>> --
>> Reply to this email directly or view it on GitHub<https://github.com/VesaKarvonen/Hopac/pull/5/files#r10918302>
>> .
>>
>
>