问题标签 [beam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - elixir - 加载模块时出错 ranch_server - 使用 20 编译器重新编译此模块
我正在尝试在我的另一台计算机上运行一个现有的 elixir 项目,在一台新计算机上(两者都是 mac)。
当我运行 iex -S mix 我得到:
我想我需要重新编译ranch_server.beam
. 我怎么做?
erlang - 每个主管有多少工人?
一个特定的主管流程应该监督多少个工人是否有界限?在构建有关性能和容错的 OTP 监督树时,我一直在多次回到这个问题:
应该由单个主管进程监督同一特定域的所有工作人员(数千个),还是应该放置较少数量的监督进程(在该主主管之下)来监督工作进程的子集?
erlang - 使用 ejabberd 进行多光束处理
我正在开发一个在后端使用 ejabberd 构建的聊天应用程序。每次我启动 ejabberd 时:我看到多个 ejabberd/beam 进程启动,一段时间后..我看到其中一个完全占用了 cpu..重新启动 erlang 虚拟机,整个系统在短时间内修复了这个问题.. ..但再次出现..
关于如何调试的任何指示?
我尝试使用 etop 查看顶级流程和 processes_info:查看流程减少情况,在高级别的情况下看起来不错..不确定我是否遗漏了什么?
我可能缺少的任何其他工具/东西?任何指针将不胜感激。我正在使用最新的 ejabberd 和 otp/erlang version-22。
erlang - 在erlang项目中制作rebar编译.core文件
我是一个绝对的 Erlang 新手,我想知道是否rebar
可以.core
使用rebar3 compile
. 根据文档:https: //www.rebar3.org/docs/commands rebar3 只会编译.app.src
和.erl
文件。而且我可以看到,当我构建我的项目时,.core
文件被忽略了。我将不胜感激。谢谢
erlang - 无法在堆上分配 - 但内存在那里
我正在追逐一个问题:每隔几天我的系统就会崩溃
我曾经遇到过一些OOM 情况,但它们是由例如导致消息队列填满整个内存的无限循环引起的。这一次是不同的。cdv 报告崩溃时的内存使用量为 6081 MB。该系统在具有 14GB RAM 的 VM 上运行,该 VM 上没有其他内容。内存监控显示 6GB 级别的稳定使用情况与故障转储一致。所以在崩溃的那一刻,Beam 仍有 8GB 可用,但它无法分配 600k。
不确定这是否相关,但系统使用的大部分内存都在一个 Mnesia ETS 表中——崩溃时它是 5631 MB。
任何人都知道 Erlang 无法分配内存的可能原因,尽管仍有很多可用的内存?
recursion - BEAM 字节码指令 call_last 的尾调用递归行为
作为阅读小组的一部分,我们最近正在阅读BEAM Book 。
在附录B.3.3中,它指出该call_last
指令具有以下行为
释放
Deallocate
堆栈的单词,然后在标签Label处对同一模块中的arity Arity函数进行尾递归调用
根据我们目前的理解,尾递归意味着分配在堆栈上的内存可以从当前调用中重用。
因此,我们想知道从堆栈中释放了什么。
此外,我们还想知道为什么在进行尾递归调用之前需要从堆栈中释放,而不是直接进行尾递归调用。
erlang - 如何实现一个函数来通知一个节点另一个节点是否退出
我正在创建一个节点集群,我想在每次连接节点时都收到通知,这怎么可能?
erlang - 为什么 Erlang/BEAM VM 中的数学运算这么慢?
我试图理解为什么 Erlang 中的数学可能会这么慢,如果是这样,我可以做些什么来找出它慢的地方并尝试加快它。有人说这是因为它是一个虚拟机,但我怀疑这是因为 JVM 的数学速度很快,V8 也是如此。其他人说这是因为它是一门不可变的语言,但 OCaml 是不可变的,并且在数学上相当快。那么是什么让 Erlang 在数学上变慢了,我将如何去寻找代码中哪里变慢呢?我只能想象使用 DTrace,因为我不太了解我应该使用的 Linux/BSD 工具,而且我不知道哪些工具会擅长分析 VM 和 VM 本身中的代码,如果这些需要不同的工具。
erlang - 打包 Elixir CLI 应用程序的最佳方式是什么?
假设我有一个带有子命令和参数(如application foo --bar baz
)的 CLI 应用程序。如何在不需要用户安装 Erlang 的情况下打包它以进行分发?
我知道有mix escript
Mix 任务,但它构建了一个需要安装 Erlang 的二进制文件,而且 Mix 参考声明 escripts 应该仅用于开发目的。
mix release
但是,会产生我不想在 dist 中看到的多余的 shell 脚本。
那么,有没有办法让 Elixir CLI 应用程序独立分发?
PS 这实际上是我第一次使用 Elixir(以及整个 Erlang 生态系统)