From b4f59483400bfeb9d515b6557b23628ae53bd8a5 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Mon, 17 Sep 2012 12:12:19 +0200 Subject: [PATCH] Remove router benchmark, see #944 --- .../src/test/scala/perf/RouterPerf.scala | 79 ------------------- 1 file changed, 79 deletions(-) delete mode 100644 akka-actor-tests/src/test/scala/perf/RouterPerf.scala diff --git a/akka-actor-tests/src/test/scala/perf/RouterPerf.scala b/akka-actor-tests/src/test/scala/perf/RouterPerf.scala deleted file mode 100644 index 20f9554540..0000000000 --- a/akka-actor-tests/src/test/scala/perf/RouterPerf.scala +++ /dev/null @@ -1,79 +0,0 @@ -package perf - -import akka.actor.ActorSystem -import akka.actor.Actor -import akka.actor.Props -import scala.concurrent.forkjoin.ThreadLocalRandom -import akka.routing.ConsistentHashingRouter -import akka.routing.ConsistentHashingRouter.ConsistentHashableEnvelope -import scala.util.Random -import akka.routing.Broadcast -import akka.actor.ActorLogging -import scala.concurrent.util.Duration -import akka.routing.RoundRobinRouter - -object RouterPerf extends App { - val system = ActorSystem("PerfApp") - var perf = new RouterPerf(system) - // Thread.sleep(20000) // hook up profiler here - perf.run() -} - -class RouterPerf(system: ActorSystem) { - - def run(): Unit = { - // nbrMessages = 10000000 - val sender = system.actorOf(Props(new Sender( - nbrMessages = 10000000, nbrRoutees = 10, nbrIterations = 10)), name = "sender") - sender ! "start" - } - -} - -class Sender(nbrMessages: Int, nbrRoutees: Int, nbrIterations: Int) extends Actor with ActorLogging { - val router = context.actorOf(Props[Destination].withRouter(ConsistentHashingRouter(nbrRoutees, - virtualNodesFactor = 10)), "router") - // val router = context.actorOf(Props[Destination].withRouter(RoundRobinRouter(nbrRoutees)), "router") - val rnd = new Random - val messages = Vector.fill(1000)(ConsistentHashableEnvelope("msg", rnd.nextString(10))) - var startTime = 0L - var doneCounter = 0 - var iterationCounter = 0 - - def receive = { - case "start" ⇒ - iterationCounter += 1 - doneCounter = 0 - startTime = System.nanoTime - val messgesSize = messages.size - for (n ← 1 to nbrMessages) { router ! messages(n % messgesSize) } - router ! Broadcast("done") - - case "done" ⇒ - doneCounter += 1 - if (doneCounter == nbrRoutees) { - val duration = Duration.fromNanos(System.nanoTime - startTime) - val mps = (nbrMessages.toDouble * 1000 / duration.toMillis).toInt - // log.info("Processed [{}] messages in [{} millis], i.e. [{}] msg/s", - // nbrMessages, duration.toMillis, mps) - println("Processed [%s] messages in [%s millis], i.e. [%s] msg/s".format( - nbrMessages, duration.toMillis, mps)) - if (iterationCounter < nbrIterations) - self ! "start" - else - context.system.shutdown() - } - } -} - -class Destination extends Actor with ActorLogging { - var count = 0 - def receive = { - case "done" ⇒ - log.info("Handled [{}] messages", count) - count = 0 - sender ! "done" - case msg ⇒ count += 1 - - } -} \ No newline at end of file