Boss de Chicago semble être un cadre neat et une bonne excuse pour apprendre Erlang. p>
avez-vous l'avoir utilisé? Puis-je vraiment obtenir super em> performance l'hébergeant sur une seule machine? P>
3 Réponses :
Généralement Erlang est d'environ 4 à 5 fois plus lent que de faire la même chose en C, bien que ce qu'il perd à la vitesse, il gagne en efficacité, à la simplicité et à la stabilité. Faire les choses que Erlang excelle, je pense que cela se situe autour de 2 à 3 fois de C. Il peut également être compilé à des fichiers binaires indigènes pour accélérer environ 20% de plus. P>
Sachez simplement qu'il y a des tonnes de choses courantes que Erlang n'est pas bonne, comme la manipulation de chaîne et le nombre de chiffres. Erlang a été fait pour la distribution (dans la plupart des sens du mot), c'est ce que c'est génial à. P>
Oh, et à propos de la grande performance sur une seule machine: pas plus de la moitié de ce qu'une application C. Mais encore une fois, cela reste probablement probablement 30 à 40 fois plus rapide que l'équivalent de Ruby, PHP ou Python. P>
Alors qu'est-ce que Erlang est bon? De plus, Erlang n'occupe-t-il pas de nombreuses choses que vous devez traiter manuellement en C (comme la collecte de déchets)?
Oui, c'est ce que je veux dire avec efficacité, simplicité et stabilité. Fondamentalement, ce qui prend 10 lignes de code dans Erlang prend 100 en C. et la manipulation des erreurs à Erlang est morte simple, ainsi que de nouveaux processus de frai. Ces choses prennent beaucoup de temps de développement en C. et Erlang a 99,999999999% de disponibilité dans les applications de la vie réelle, simplement parce qu'il est conçu pour échouer sans crash, car il devait être utilisé dans des télécommunications et des choses comme ça. Et vous pouvez mettre à jour votre application pendant qu'il fonctionne, ce qui est très rare.
Oh, et à propos de la collecte des ordures .. Il n'y a rien de tel, en soi. Erlang n'a pas d'état, c'est une langue fonctionnelle. Les variables ne peuvent être définies qu'une seule fois, donc un débordement de mémoire ne peut pas se produire (sauf si vous f ** k up gravement, ou faites-le exprès).
TOR: Vous devez regarder la mémoire, c'est-à-dire que vous assurez qu'une boîte aux lettres de processus ne se remplit pas et que vous n'allociez pas beaucoup de nombreux nouveaux atomes.
@Gene t - Bien sûr, mais ce n'est pas un problème de GC. ;) Et laisser les utilisateurs à définir des atomes est un Nay-naay, donc si vous parvenez à coder 20 000 atomes, vous êtes assez occupé. : P
Je ne peux pas parler des performances de Chicago Boss Spécialement, mais les serveurs Web Erlang sont généralement très rapides. P>
Ils sont également très bons pour plusieurs connexions simultanées, en raison des primitives de la concurrence d'Erlang. Je sais que Chicago Boss n'utilise pas de yaws, mais voici un Apache vs. Yaws A > Graphique, juste pour référence. P>
convenu, c est plus rapide dans de nombreux cas, mais une vitesse que vous gagnerez de C dans le traitement, vous perdrez lorsque vous avez plusieurs utilisateurs. Pense à cela comme ceci: p>
En fait, j'ai trouvé le créateur de Chicago Boss ici l'autre jour. Surpris qu'il n'a pas encore commenté à vous.
Parfait, comment deux ans plus tard, ceci est soudainement "hors sujet". Les réponses ici sont assez utiles, même si la question n'est pas définie correctement. Puis-je modifier pour supprimer le drapeau?