Существует два грубых эмпирических правила, основанных на Часто задаваемые вопросы по Erlang :
Код, который включает в себя, главным образом, сокращение числа, и обработка данных будет выполняться примерно 10 размедленнее, чем эквивалентная C-программа.Это включает в себя почти все «микро тесты».
Большие системы, которые большую часть своего времени общались с другими системами, восстанавливались после сбоев и принимали сложные решения, по крайней мере, так же быстро, как эквивалентные программы на Си.
Однако существуют некоторые официальные решения для недостаточной производительности обработки числа Эрланга:
Реализация функции в C и загрузка ее объектного кода в виртуальную машину Erlang, чтобы она была похожа на стандартную функцию Erlang, но с собственной производительностью.
Примеры: Evedis , Bitcask , ElevelDB
Байт-ориентированный интерфейс от виртуальной машины Erlang к внешним процессам ОС через стандартные дескрипторы файлов ввода и вывода.Связь с этим портом осуществляется через передачу сообщений с точки зрения Эрланга.
Динамически связанный объектный файл C, который являетсязагружается в виртуальную машину Erlang и действует как порт.Связь с этим драйвером порта осуществляется через передачу сообщений с точки зрения Эрланга.
Примеры: OTP_Inet , ENanomsg , P1_TLS
Вы можете просто продвинуть свою среду выполнения Erlang на распределенный узел.Таким образом, существует спецификация для реализации среды выполнения Erlang в C и связи с узлами Erlang с помощью единого интерфейса.
Все вышеупомянутые решения имеют свои плюсы и минусы и должны использоваться с особой осторожностью.