2010-01-31 6 views
11

Chicago Boss parece un marco ordenado y una buena excusa para aprender Erlang.¿alguien por ahí usando Chicago Boss?

¿Alguno de ustedes lo usó? ¿Realmente puedo obtener excelente rendimiento que lo aloja en una sola máquina?

+1

En realidad me encontré con el creador de Chicago Jefe de aquí el otro día. Sorprendido de que no haya comentado todavía. – samoz

+2

Es extraño cómo dos años más tarde esto es repentinamente "fuera del tema". Las respuestas aquí son bastante útiles, incluso si la pregunta no está enmarcada correctamente. ¿Puedo editar para eliminar la bandera? – user94154

Respuesta

4

No puedo hablar específicamente del rendimiento de Chicago Boss, pero los servidores web de Erlang son generalmente muy rápidos.

También son muy buenos para conexiones simultáneas múltiples, debido a las primitivas de simultaneidad de Erlang. Sé que Chicago Boss no usa Yaws, pero aquí hay un gráfico Apache vs. Yaws, solo para referencia.

De acuerdo, C es más rápido en muchos casos, pero a cualquier velocidad que ganes de C en el proceso, perderás cuando tengas varios usuarios. Piense en ello como esto:

  • C puede tomar 10 unidades de tiempo para completar una tarea, pero 20 unidades para pasar a la siguiente cliente y la espalda.
  • Erlang puede tomar 15 unidades de tiempo para completar, pero tomará aproximadamente 5 unidades para cambiar de cliente.
  • DESCARGO DE RESPONSABILIDAD: Las unidades de tiempo son solo términos relativos. No digo que esas sean las proporciones correctas tampoco, solo digo que la ventaja de la velocidad de C no será tan importante una vez que comiences a tener varias cosas a la vez, que es para lo que está hecho Erlang.
1

Generalmente Erlang es aproximadamente 4-5 veces más lento que hacer lo mismo en C, pero lo que pierde en velocidad, gana en eficiencia, simplicidad y estabilidad. Haciendo las cosas en las que Erlang sobresale, creo que se encuentra alrededor de 2-3 veces de C. También se puede compilar en binarios nativos para acelerarlo un 20% más.

Simplemente sepa que hay muchas cosas en común en las que Erlang no es bueno, como la manipulación de cuerdas y el crujido de números. Erlang se hizo para la distribución (en la mayoría de los sentidos de la palabra), así que eso es lo que es increíble.

Ah, y sobre el gran rendimiento en una sola máquina: no más de la mitad de lo que una aplicación C haría. Pero, de nuevo, todavía es probablemente 30-40 veces más rápido que el equivalente en ruby, php o python.

+0

Entonces, ¿en qué es bueno Erlang? Además, ¿no se ocupa Erlang de muchas cosas con las que tiene que lidiar manualmente en C (como recolección de basura)? – user94154

+1

Sí, eso es lo que quiero decir con eficiencia, simplicidad y estabilidad. Básicamente lo que toma 10 líneas de código en Erlang toma 100 en C. Y el manejo de errores en Erlang es completamente simple, así como también genera nuevos procesos. Esas cosas toman mucho tiempo de desarrollo en C. Y Erlang tiene un 99.9999999% de tiempo de actividad en aplicaciones de la vida real, simplemente porque está diseñado para fallar sin fallar, porque tuvo que ser utilizado en telecomunicaciones y cosas por el estilo. Y puede actualizar su aplicación mientras se está ejecutando, lo cual es muy raro. –

+1

Oh, y sobre la recolección de basura ... no existe tal cosa, per se. Erlang no tiene estado, es un lenguaje funcional. Las variables solo se pueden configurar una vez, por lo que no se puede producir un desbordamiento de la memoria (a menos que tenga un ataque grave o lo haga a propósito). –

Cuestiones relacionadas