Attualmente sto usando Java, ho letto molto su Erlang in rete, e ho 2 grandi domande:quante CPU sono necessari prima che Erlang è più veloce rispetto a thread singolo Java
Come molto più lento (se mai) sarà Erlang rispetto a Java semplice?
Suppongo qui che Java sarà più veloce dallo shootout benchmarks sulla rete (Erlang non funziona bene). Quindi, quante altre CPU avrò bisogno di far splendere Erlang su Java a thread singolo (nella mia particolare situazione, data sotto)?Dopo aver letto per un po 'di tempo su Erlang, ho trovato un numero di commenti/post che dicono che i sistemi Erlang più grandi contengono una buona quantità di C/C++.
È per motivi di velocità (la mia ipotesi) o qualcos'altro? cioè, perché è richiesto?
Ho letto sul numero di processori in maggior parte delle macchine che vanno in su e filettatura modelli essendo difficile (sono d'accordo), ma sto cercando di scoprire quando la "linea" sta per essere attraversato in modo che io possa cambia lingua/paradigma al momento giusto.
Un po 'di fondo/contesto:
sto lavorando sul lato server sui servizi Java che sono molto CPU-bound e facilmente fatta in parallelo. Ciò è dovuto, in genere, a un singolo aggiornamento in entrata (via TCP) che attiva una modifica a più uscite (100 s).
I calcoli sono in genere piuttosto semplici (pochi cicli, solo un sacco di operazioni aritmetiche) e gli input stanno arrivando abbastanza velocemente (100/s).
Attualmente stiamo eseguendo su 4 macchine CPU e eseguendo più servizi su ciascuna (quindi multi-threading è piuttosto inutile e Java sembra funzionare più velocemente senza i blocchi di sincronizzazione, ecc. Necessari per renderlo multi-thread). Ora c'è una forte spinta alla velocità e ora abbiamo accesso a 24 processori (per processo, se necessario), quindi mi chiedo come meglio procedere: Java multi-threading o qualcosa di più facile da codificare, come Erlang.
Ho letto la tua domanda completa e modificato la mia risposta per fornire una discussione per voi per vedere quale sia il punto cruciale della decisione. –