Mientras que los actores de Scala son descritos como de peso liviano, los actores de Akka lo son aún más, obviamente hay algo de sobrecarga para usarlos.¿Cuál es la unidad de trabajo más pequeña que es sensata para paralelizar con los actores?
Así que mi pregunta es, ¿cuál es la unidad de trabajo más pequeña que vale la pena el paralelismo con los actores (suponiendo que se puede paralelizar)? ¿Solo vale la pena si hay alguna latencia potencial o hay un lote de cálculos pesados?
Estoy buscando una regla general que pueda aplicar fácilmente en mi trabajo diario.
EDITAR: Las respuestas hasta ahora me han hecho darme cuenta de que lo que me interesa quizás sea realmente el inverso de la pregunta que hice originalmente. Por lo tanto:
Suponiendo que la estructuración de mi programa con los actores es un ajuste muy bueno, y por lo tanto incurre en ninguna sobrecarga adicional de desarrollo (o incluso provoca una sobrecarga menos el desarrollo de una implementación no el actor lo haría), pero las unidades de trabajo se los desempeños son bastante pequeños: ¿hay algún punto en el que usar actores sería perjudicial en términos de rendimiento y debería evitarse?
Un punto interesante, y me ha hecho pensar que tal vez hice la pregunta al revés: los actores simplificaron enormemente el diseño de lo que quiero hacer, encajan muy bien en términos de la estructura del programa, sin embargo el Las unidades de trabajo son lo suficientemente pequeñas como para preocuparme por el uso de actores que pueden tener un efecto negativo en el rendimiento. – Russell
Los efectos negativos solo deberían desempeñar un papel si requiere una tasa de mensajes muy alta (como dije: más que unos pocos millones por segundo) O si está dominado por la latencia. Con los actores, es más fácil hacer las cosas en paralelo, lo que significa más cosas por segundo, pero cada cosa tardará un poco más. El intercambio clásico. –
Gracias por sus respuestas, una de esas situaciones desafortunadas donde solo tiene que elegir una para marcar como aceptada. – Russell