Я знаю людей, использующих огромное количество актеров, поэтому я почти уверен, что утечки памяти не являются широко распространенными.
Были ли у Scala Actors утечки памяти в 2009 году (Scala 2.7.x)? Да, они сделали. Например, SI-1801 и SI-1948.
Прямо сейчас есть три открытых заявки на утечку памяти, которые я смог найти: SI-3467, SI-3920 и SI-3921.
Однако я не согласен с одним вашим комментарием:
одна из самых сильных сторон scala (по крайней мере, для меня Erlang, как и актеры, является одной из главных конфет языка)
Актеры НЕ являются частью языка! Они библиотека! В этом весь смысл Scala, в этом само значение слова «масштабируемый», из которого произошло название Scala: вы можете добавлять подобные вещи через библиотеки.
На данный момент в Scala существует четыре различных реализации актора: основная библиотека, Scalaz, Lift и Akka. У вас нет абсолютно никаких причин привязываться к стандартной библиотеке. На самом деле, одна из проблем с акторами в основной библиотеке заключается в том, что они были написаны больше для того, чтобы доказать, что это можно сделать, чем для решения реальных проблем.
Если вы хотите использовать актеров, используйте Akka. Вы можете использовать его прямо сейчас. Черт, вы даже можете использовать его с Java, если вам нравится синтаксический мазохизм. Akka — превосходная библиотека, которая выходит далеко за рамки простого предоставления акторов и предоставляет все вспомогательные инструменты, чтобы сделать их полезными (например, супервизоры и балансировщики нагрузки), а также другие инструменты для полной поддержки параллелизма, такие как агенты (в стиле Clojure), STM. (на основе Multiverse), интеграция со Spring, Camel, AMQP и т. д.
Сила Scala в том, что ее можно расширять с помощью библиотек. Если вы ограничиваете себя тем, что есть в стандартной библиотеке, вы ее выбрасываете.
person
Daniel C. Sobral
schedule
13.09.2011