private static void DoLocalTest(int actorCount, int pingCount)
{
using (var system = ActorSystem.Create("System"))
{
// make clients and servers
var t1 = new Stopwatch();
t1.Start();
var clients = new List<IActorRef>();
for (int i = 0; i < actorCount; i++)
{
var server = system.ActorOf(Props.Create<ServerActor>(), "Server_" + i);
var client = system.ActorOf(Props.Create<ClientActor>(server), "Client_" + i);
clients.Add(client);
}
var warmUpTasks = clients.Select(x =>
x.Ask<ClientMessages.StartResponse>(
new ClientMessages.StartRequest { Count = 1 })
).ToArray();
Task.WaitAll(warmUpTasks);
t1.Stop();
Console.WriteLine($"Ready: {t1.Elapsed}");
// test
var t2 = new Stopwatch();
t2.Start();
var pingTasks = clients.Select(x =>
x.Ask<ClientMessages.StartResponse>(
new ClientMessages.StartRequest { Count = pingCount })
).ToArray();
Task.WaitAll(pingTasks);
t2.Stop();
Console.WriteLine($"Test: {t2.Elapsed}");
}
}