почему бы и на эликсире не написать?
На эликсире можно писать, но эликсир и правда медленно инициализируется. Большую часть времени инициализируется erts. И это просто легаси баг, у этого нет никаких объективных причин. Вон, Ling VM умеет инициализироваться за милисекунды. А дефолтный Erlang VM нет
Для объективности еще стоит вспомнить, какая часть описания окружения в Линге пишется статически на этапе сборки, является ли линг smp или он всё же одноядерный, а так же то, что в нем по-моему нет нормальной фс. Отдельно я не уверен, что там нормальная инициализация «ядра» отп, типа application controller. Бтв, я по-моему никогда от времени старта beam не страдал, в отличие от jvm. Заменять эликсиром шелл-скрипты конечно сомнительная идея, но по совсем другим причинам.
1. Файловая система это не часть Ling, и вообще не часть Erlang. 2. Запустить N лингов и подключить их быстрее чем запустить один Erlang VM 3. А про статическость вообще не понял
1 - модули и конфиги либо на диске, либо уже в оперативке, это уже хорошая такая разница. 3 - запросить у ос все нужные описания окружения, типа хостнейма с айпи, количества и конфигурации ядер, конфиг numa будь оно неладно, и что там еще нужно. запустить epmd и всякие *sup, кстати, но это другая конфигурация, не о ней речь.
2 - если ты можешь запустить Х независимых процессов, зачем вообще beam.
1. Разница точно не в 200 раз. Да и потом, как модули и конфиги могут быть уже в оперативке. Инициализация виртуалки происходит как раз с диска, что в первом, что и во втором случае. Какой-то сломанный аргумент
Так линг же вроде собирает всю фс в один файл образа, и ксен его наверняка грузит в память целиком, соответственно дальше всё уже из памяти читается, никакого io не нужно.
Обсуждают сегодня