Ci sono due regole approssimativa basato su Erlang FAQ:
codice che coinvolge principalmente calcoli complessi ed elaborazione dei dati verrà eseguito circa 10 volte più lento di un programma C equivalente. Questo include quasi tutti i "micro benchmark".
Grandi sistemi che passavano la maggior parte del loro tempo a comunicare con altri sistemi, a riprendersi dagli errori ea prendere decisioni complesse che correvano almeno alla stessa velocità dei programmi C equivalenti.
Tuttavia ci sono alcune soluzioni ufficiali alla mancanza di macinare numeri prestazione di Erlang:
Implementare una funzione in C e caricamento sua codice oggetto nella macchina virtuale Erlang per essere come una normale funzione di Erlang ma con prestazioni native.
Esempi: Evedis, Bitcask, ElevelDB
Un'interfaccia byte orientato da Erlang macchina virtuale processi OS esterni attraverso descrittori file di input e di output standard. La comunicazione con questa porta passa attraverso il messaggio che passa dal punto di vista di Erlang.
Un file oggetto C collegata dinamicamente che viene caricato nella macchina virtuale Erlang e si comporta come una porta. La comunicazione con questo driver della porta passa attraverso il messaggio che passa dal punto di vista di Erlang.
Esempi: OTP_Inet, ENanomsg, P1_TLS
si può semplicemente promuovere il tuo runtime Erlang ad un nodo distribuito. In questo modo c'è una specifica per implementare un runtime Erlang in C e comunicare con i nodi di Erlang con una singola interfaccia.
Tutte le soluzioni di cui sopra hanno i suoi pro e contro e devono essere utilizzate con estrema cura.
fonte
2015-12-26 15:20:31
una degna modifica della domanda: P – Drew
@Drew Molto più organizzato e conciso in questi giorni. Guadagnare un grado di ingegneria astronomica aiuta sicuramente. – BAR