я думаю, что ответ Хавьера имеет смысл. если вы хотите проверить теорию, то посмотрите проект javascript node .
Узел основан на движке Google v8, который компилирует javascript в машинный код и работает так же быстро, как и c, для определенных задач. Он также основан на libev и спроектирован полностью неблокирующим, что означает, что вам не нужно беспокоиться о переключении контекста между потоками (все выполняется в одном цикле событий). Это очень похоже на эрланга в этом отношении.
Писать высокопроизводительные серверы в javascript теперь очень легко с помощью узла. Вы также можете, приложив немного усилий, написать свой собственный код на c и создать привязки для узла, который будет вызывать его для выполнения фактической обработки (посмотрите на исходный код узла, чтобы узнать, как это сделать - документация немного схематична в момент). в качестве более уродливой альтернативы, вы можете создать свой собственный код c как приложение и использовать stdin / stdout для связи с ним.
Я сам проверил узел с количеством подключений более 150 тыс. Без каких-либо проблем (конечно, вам понадобится какое-то серьезное оборудование, если все эти соединения будут обмениваться данными одновременно). TCP-соединение в node.js в среднем использует всего 2-3 КБ памяти, поэтому теоретически вы можете обрабатывать 350-500 КБ-соединений на 1 ГБ ОЗУ.
Примечание. В настоящее время Node.js не поддерживается в Windows, но это только на ранней стадии разработки, и я предполагаю, что он будет перенесен на каком-то этапе.
Примечание 2 - вы должны убедиться, что код, на который вы звоните с узла, не блокирует