问题标签 [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.

0 投票
1 回答
1014 浏览

erlang - elixir - 加载模块时出错 ranch_server - 使用 20 编译器重新编译此模块

我正在尝试在我的另一台计算机上运行一个现有的 elixir 项目,在一台新计算机上(两者都是 mac)。

当我运行 iex -S mix 我得到:

我想我需要重新编译ranch_server.beam. 我怎么做?

0 投票
1 回答
347 浏览

erlang - 每个主管有多少工人?

一个特定的主管流程应该监督多少个工人是否有界限?在构建有关性能和容错的 OTP 监督树时,我一直在多次回到这个问题:

应该由单个主管进程监督同一特定域的所有工作人员(数千个),还是应该放置较少数量的监督进程(在该主主管之下)来监督工作进程的子集?

0 投票
0 回答
87 浏览

erlang - 使用 ejabberd 进行多光束处理

我正在开发一个在后端使用 ejabberd 构建的聊天应用程序。每次我启动 ejabberd 时:我看到多个 ejabberd/beam 进程启动,一段时间后..我看到其中一个完全占用了 cpu..重新启动 erlang 虚拟机,整个系统在短时间内修复了这个问题.. ..但再次出现..

关于如何调试的任何指示?

我尝试使用 etop 查看顶级流程和 processes_info:查看流程减少情况,在高级别的情况下看起来不错..不确定我是否遗漏了什么?

我可能缺少的任何其他工具/东西?任何指针将不胜感激。我正在使用最新的 ejabberd 和 otp/erlang version-22。

0 投票
0 回答
58 浏览

erlang - 在erlang项目中制作rebar编译.core文件

我是一个绝对的 Erlang 新手,我想知道是否rebar可以.core使用rebar3 compile. 根据文档:https: //www.rebar3.org/docs/commands rebar3 只会编译.app.src.erl文件。而且我可以看到,当我构建我的项目时,.core文件被忽略了。我将不胜感激。谢谢

0 投票
0 回答
270 浏览

erlang - 无法在堆上分配 - 但内存在那里

我正在追逐一个问题:每隔几天我的系统就会崩溃

我曾经遇到过一些OOM 情况,但它们是由例如导致消息队列填满整个内存的无限循环引起的。这一次是不同的。cdv 报告崩溃时的内存使用量为 6081 MB。该系统在具有 14GB RAM 的 VM 上运行,该 VM 上没有其他内容。内存监控显示 6GB 级别的稳定使用情况与故障转储一致。所以在崩溃的那一刻,Beam 仍有 8GB 可用,但它无法分配 600k。

不确定这是否相关,但系统使用的大部分内存都在一个 Mnesia ETS 表中——崩溃时它是 5631 MB。

任何人都知道 Erlang 无法分配内存的可能原因,尽管仍有很多可用的内存?

0 投票
1 回答
80 浏览

erlang - 什么是 BEAM 中的同步调用技巧/参考技巧

作为我们阅读小组的一部分,我们最近正在阅读BEAM 书。第 7 章提到了 Erlang 中的 ref 技巧/同步调用技巧。

不幸的是,这本书是不完整的,经过讨论,我们无法弄清楚参考技巧是什么。

0 投票
2 回答
80 浏览

recursion - BEAM 字节码指令 call_last 的尾调用递归行为

作为阅读小组的一部分,我们最近正在阅读BEAM Book 。

在附录B.3.3中,它指出该call_last指令具有以下行为

释放Deallocate堆栈的单词,然后在标签Label处对同一模块中的arity Arity函数进行尾递归调用

根据我们目前的理解,尾递归意味着分配在堆栈上的内存可以从当前调用中重用。

因此,我们想知道从堆栈中释放了什么。

此外,我们还想知道为什么在进行尾递归调用之前需要从堆栈中释放,而不是直接进行尾递归调用。

0 投票
1 回答
189 浏览

erlang - 如何实现一个函数来通知一个节点另一个节点是否退出

我正在创建一个节点集群,我想在每次连接节点时都收到通知,这怎么可能?

0 投票
1 回答
329 浏览

erlang - 为什么 Erlang/BEAM VM 中的数学运算这么慢?

我试图理解为什么 Erlang 中的数学可能会这么慢,如果是这样,我可以做些什么来找出它慢的地方并尝试加快它。有人说这是因为它是一个虚拟机,但我怀疑这是因为 JVM 的数学速度很快,V8 也是如此。其他人说这是因为它是一门不可变的语言,但 OCaml 是不可变的,并且在数学上相当快。那么是什么让 Erlang 在数学上变慢了,我将如何去寻找代码中哪里变慢呢?我只能想象使用 DTrace,因为我不太了解我应该使用的 Linux/BSD 工具,而且我不知道哪些工具会擅长分析 VM 和 VM 本身中的代码,如果这些需要不同的工具。

0 投票
2 回答
430 浏览

erlang - 打包 Elixir CLI 应用程序的最佳方式是什么?

假设我有一个带有子命令和参数(如application foo --bar baz)的 CLI 应用程序。如何在不需要用户安装 Erlang 的情况下打包它以进行分发?

我知道有mix escriptMix 任务,但它构建了一个需要安装 Erlang 的二进制文件,而且 Mix 参考声明 escripts 应该仅用于开发目的。 mix release但是,会产生我不想在 dist 中看到的多余的 shell 脚本。

那么,有没有办法让 Elixir CLI 应用程序独立分发?

PS 这实际上是我第一次使用 Elixir(以及整个 Erlang 生态系统)