2010-01-31 4 views
11

Chicago Boss sembra un quadro pulito e una buona scusa per imparare Erlang.qualcuno là fuori usando Chicago Boss?

Qualcuno di voi l'ha usato? Posso davvero ottenere ottime prestazioni ospitando su una singola macchina?

+1

In realtà ho trovato il creatore di Chicago Boss qui l'altro giorno. Sorpreso che non ti abbia ancora commentato. – samoz

+2

Strano come due anni dopo questo sia improvvisamente "fuori tema". Le risposte qui sono piuttosto utili anche se la domanda non è inquadrata correttamente. Posso modificare per rimuovere la bandiera? – user94154

risposta

4

Non posso parlare specificamente per le prestazioni di Chicago Boss, ma i server Web di Erlang sono generalmente molto veloci.

Sono anche molto buone per più connessioni simultanee, a causa della concorrenza di primitive di Erlang. So che Chicago Boss non usa Yaws, ma qui c'è un grafico Apache vs. Yaws, solo per riferimento.

D'accordo, C è più veloce in molti casi, ma qualsiasi velocità guadagnerai da C durante l'elaborazione, perderai quando avrai più utenti. Pensa in questo modo:

  • C può richiedere 10 unità di tempo per completare un'attività, ma 20 unità per passare al client successivo e viceversa.
  • Erlang potrebbe richiedere 15 unità di tempo per completare, ma occorreranno circa 5 unità per cambiare client.
  • DISCLAIMER: le unità di tempo sono solo termini relativi. Non sto dicendo che anche queste sono le proporzioni corrette, sto solo dicendo che il vantaggio in termini di velocità di C non sarà tanto importante una volta che inizierai a fare più cose contemporaneamente, il che è ciò per cui Erlang è fatto.
1

Generalmente Erlang è circa 4-5 volte più lento di fare la stessa cosa in C, anche se ciò che perde in velocità, guadagna in efficienza, semplicità e stabilità. Facendo le cose su cui Erlang eccelle, penso che si trovi intorno a 2-3 volte di C. Può anche essere compilato in binari nativi per accelerare di circa il 20% in più.

Basta sapere che ci sono tonnellate di cose comuni a cui Erlang non è bravo, come la manipolazione delle stringhe e il numero di crunch. Erlang è stato creato per la distribuzione (nella maggior parte dei sensi della parola), quindi è fantastico.

Oh, e sull'ottima prestazione su una singola macchina: non più della metà di quello che farebbe un'app di C. Ma poi di nuovo, è probabilmente ancora 30-40 volte più veloce dell'equivalente in ruby, php o python.

+0

Allora, a cosa serve Erlang? Inoltre, Erlang non si occupa di un sacco di cose che devi gestire manualmente in C (come la raccolta dei rifiuti)? – user94154

+1

Sì, questo è ciò che intendo con efficienza, semplicità e stabilità. Fondamentalmente ciò che prende 10 linee di codice in Erlang richiede 100 in C. E la gestione degli errori in Erlang è estremamente semplice, così come la generazione di nuovi processi. Queste cose richiedono molto tempo di sviluppo in C. Ed Erlang ha un tempo di attività del 99,99999999% nelle app di vita reale, semplicemente perché è progettato per fallire senza crash, perché doveva essere usato nelle telecomunicazioni e cose del genere. E puoi aggiornare la tua app mentre è in esecuzione, il che è molto raro. –

+1

Oh, e sulla raccolta dei rifiuti ... non esiste una cosa del genere. Erlang non ha uno stato, è un linguaggio funzionale. Le variabili possono essere impostate una sola volta, quindi un overflow di memoria non può avvenire (a meno che non si esegua un brusco tiraggio, o lo faccia apposta). –