Skip to content

Instantly share code, notes, and snippets.

@patriknw
Created April 2, 2012 18:56
Show Gist options
  • Save patriknw/2286308 to your computer and use it in GitHub Desktop.
Save patriknw/2286308 to your computer and use it in GitHub Desktop.
TellThroughputPerformanceSpec used for the 50 million msg/s test
case object Run
case object Msg
class Destination extends Actor {
def receive = {
case Msg ⇒ sender ! Msg
}
}
class Client(
actor: ActorRef,
latch: CountDownLatch,
repeat: Long) extends Actor {
val initalMessages = math.min(
repeat,
2 * context.system.settings.config.getInt(
"benchmark.throughput-dispatcher.throughput"))
var sent = 0L
var received = 0L
def receive = {
case Msg ⇒
received += 1
if (sent < repeat) {
actor ! Msg
sent += 1
} else if (received >= repeat) {
latch.countDown()
}
case Run ⇒
for (i ← 0L until initalMessages) {
actor ! Msg
sent += 1
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment