Что происходит, когда мы используем цикл вместо while (true) с актерами scala?

В чем разница использования цикла вместо while (true) при использовании приема с акторами. Петля вроде работает намного быстрее, но почему и что творится под капотом?

Есть ли что-нибудь плохое в использовании цикла вместо while (true)?

Подробнее о контексте. Я провожу тесты производительности в простом коде ping / pong. И я использую receive.

Это класс Ping:

class ReceivePing(
        count : Int,
        pong : Actor
       ) extends Actor {def act() {
var pingsLeft = count - 1
pong ! Start
pong ! ReceivePing
while(true) {
  receive {
    case ReceivePong =>
      if (pingsLeft % 10000 == 0)
        Console.println("ReceivePing: pong")
      if (pingsLeft > 0) {
        pong ! ReceivePing
        pingsLeft -= 1
      } else {
        Console.println("ReceivePing: stop")
        pong ! Stop
        exit()
      }
  }
}}}

вместо while (true) он лучше работает с циклом.

Спасибо

7
задан Fred Foo 26 January 2011 в 12:31
поделиться