2010-01-31 5 views
11

Chicago Boss semble être un cadre soigné et une bonne excuse pour apprendre Erlang.quelqu'un qui utilise Chicago Boss?

L'un de vous l'a-t-il déjà utilisé? Puis-je vraiment obtenir des performances l'hébergeant sur une seule machine?

+1

En fait, je trouve le créateur de Chicago patron ici l'autre jour. Surpris, il ne t'a pas encore commenté. – samoz

+2

Bizarre comment deux ans plus tard, c'est soudainement "hors sujet". Les réponses ici sont très utiles même si la question n'est pas correctement encadrée. Puis-je modifier pour supprimer le drapeau? – user94154

Répondre

4

Je ne peux pas parler spécifiquement de la performance de Chicago Boss, mais les serveurs Web d'Erlang sont généralement très rapides.

Ils sont également très bien pour plusieurs connexions simultanées, en raison des primitives de concurrence d'Erlang. Je sais que Chicago Boss n'utilise pas Yaws, mais voici un graphique Apache vs. Yaws, juste pour référence.

D'accord, C est plus rapide dans de nombreux cas, mais toute vitesse que vous gagnerez de C dans le traitement, vous perdrez lorsque vous avez plusieurs utilisateurs. Pensez-y comme ceci:

  • C peut prendre 10 unités de temps pour terminer une tâche, mais 20 unités pour passer au client suivant et revenir.
  • Erlang peut prendre 15 unités de temps à compléter, mais prendra environ 5 unités pour changer de client. AVERTISSEMENT: Les unités de temps sont juste des termes relatifs. Je ne dis pas que ce sont les bonnes proportions non plus, je dis juste que l'avantage de vitesse de C ne sera pas aussi important une fois que vous commencerez à avoir plusieurs choses en même temps, ce qui est fait pour Erlang.
1

Généralement Erlang est environ 4-5 fois plus lent que de faire la même chose en C, bien que ce qu'il perd en vitesse, il gagne en efficacité, simplicité et stabilité. En faisant les choses sur lesquelles Erlang excelle, je pense qu'il se situe autour de 2-3 fois de C. Il peut aussi être compilé en binaires natifs pour l'accélérer d'environ 20% de plus. Il suffit de savoir qu'il y a des tonnes de choses courantes qui ne sont pas bonnes chez Erlang, comme la manipulation de chaînes et le calcul des nombres. Erlang a été fait pour la distribution (dans la plupart des sens du mot), c'est pourquoi c'est génial. Oh, et à propos de la grande performance sur une seule machine: Pas plus de la moitié de ce qu'une application C serait. Mais encore une fois, cela reste probablement 30 à 40 fois plus rapide que l'équivalent en ruby, php ou python.

+0

Alors, à quoi sert Erlang? En outre, Erlang ne s'occupe-t-il pas de beaucoup de choses que vous devez gérer manuellement en C (comme la collecte des ordures)? – user94154

+1

Oui, c'est ce que je veux dire par l'efficacité, la simplicité et la stabilité. Fondamentalement, ce qui prend 10 lignes de code dans Erlang prend 100 en C. Et la gestion des erreurs dans Erlang est mort simple, ainsi que la génération de nouveaux processus. Ces choses prennent beaucoup de temps de développement en C. Et Erlang a 99,9999999% de disponibilité dans les applications de la vie réelle, tout simplement parce qu'il est conçu pour échouer sans se briser, car il devait être utilisé dans les télécommunications et des choses comme ça. Et vous pouvez mettre à jour votre application pendant son fonctionnement, ce qui est très rare. –

+1

Oh, et à propos de la collecte des ordures .. il n'y a pas de telle chose, en soi. Erlang n'a pas d'état, c'est un langage fonctionnel. Les variables ne peuvent être définies qu'une seule fois, de sorte qu'un débordement de mémoire ne peut pas se produire (à moins que vous ne fassiez trop attention, ou que vous ne le fassiez exprès). –

Questions connexes