Ich bin derzeit mit Java, ich habe viel über Erlang auf dem Netz lesen, und ich habe 2 große Fragen:Wie viele CPUs erforderlich sind, bevor Erlang ist schneller als single-threaded Java
Wie viel langsamer (wenn überhaupt) wird Erlang über einfaches Java sein?
Ich gehe davon aus, dass hier Java geht schneller sein von den shootout benchmarks auf dem Netz (Erlang tut nicht so gut). Also, wie viele CPUs brauche ich, um Erlang über single-threaded Java (in meiner speziellen Situation, unten angegeben) glänzen zu lassen?Nachdem ich eine Weile über Erlang gelesen habe, habe ich eine Reihe von Kommentaren gelesen, die sagen, dass die meisten großen Erlang-Systeme eine gute Menge an C/C++ enthalten.
Ist das aus Geschwindigkeitsgründen (meine Annahme) oder etwas anderes? Warum ist das erforderlich?
Ich habe über die Anzahl der Prozessoren in den meisten Maschinen lese nach oben und Modellen Einfädeln hart zu sein (ich stimme), aber ich bin auf der Suche, um herauszufinden, wenn die „Linie“ überquert werden soll, so dass ich kann ändere Sprache/Paradigma zur richtigen Zeit.
Ein bisschen Hintergrund/Kontext:
Ich arbeite serverseitige Java auf Dienste, die sehr CPU-gebunden sind und leicht gemacht parallel. Dies liegt typischerweise an einer einzigen eingehenden Aktualisierung (über TCP), die eine Änderung an mehreren (100s von) Ausgängen auslöst.
Die Berechnungen sind in der Regel recht einfach (paar Schleifen, nur viel Arithmetik) und die Eingänge in ziemlich schnell (100/s) kommen.
Gegenwärtig laufen wir auf 4 CPU-Rechnern und führen mehrere Dienste auf jedem aus (daher ist Multithreading ziemlich sinnlos und Java scheint schneller zu laufen, ohne dass die Synchronisationsblöcke usw. erforderlich sind, um es multi-threaded zu machen). Es gibt jetzt einen starken Drang nach Geschwindigkeit und wir haben jetzt Zugriff auf 24 Prozessor-Maschinen (pro Prozess, falls erforderlich), also frage ich mich, wie es am besten weitergeht - massiv Multithreading-Java oder etwas einfacher zu programmieren wie Erlang.
Ich habe Ihre vollständige Frage gelesen und meine Antwort bearbeitet, um eine Diskussion für Sie zu bieten, um zu sehen, was der Kern der Entscheidung ist. –