TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

A brief introduction to BEAM

224 点作者 codeadict超过 4 年前

9 条评论

rdtsc超过 4 年前
The JIT in OTP 24 mentioned at the top was discussed in <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24441841" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24441841</a><p>I am looking forward to more blog posts about it.<p>A few interesting snippets from the PR comments from it:<p>---<p>[...] number of Estones as computed by the estone benchmark suite becomes about 50% larger, meaning about 50% more work can be done during the same time period. Individual benchmarks within the estone benchmark suite vary from a 170% increase (pattern matching) to no change at all (huge messages)<p>[...] If we run the JSON benchmarks found in the Poison or Jason, BeamAsm achieves anything from 30% to 130% increase (average at about 70%) in the number of iterations per second for all Erlang&#x2F;Elixir implementations.<p>---
hinkley超过 4 年前
I’ve heard that errors in native code called via FFI in BEAM code is the primary place where the runtime can behave uncharacteristically. I haven’t seen anyone in the community describe it this way but it has the feel of undefined behavior to it.<p>There’s apparently some heightened interest in Rust for these purposes because its guarantees offer some additional robustness here.<p>But having JIT for the BEAM changes the calculus of whether it’s worth maintaining your code in two languages for a speed improvement that comes with additional liabilities. It will be interesting to see what libraries and tools become pure as the JIT covers more territory.
评论 #24853137 未加载
评论 #24854856 未加载
评论 #24852527 未加载
评论 #24857053 未加载
dnautics超过 4 年前
well, this is pretty timely. I have been peeking at some of the opcodes in the BEAM and some of this stuff I had gotten wrong; since there isn&#x27;t AFAICT easy-to-find documentation on how this works. Does anyone know of other resources along these lines?
评论 #24852065 未加载
评论 #24852051 未加载
rkangel超过 4 年前
I was surprised to read that the BEAM has no concept of processes.<p>I assume that the BEAM has some primitives to do with reduction counting and pre-emption that can be used to implement the full erlang process, but the BEAM book (<a href="https:&#x2F;&#x2F;blog.stenmans.org&#x2F;theBeamBook&#x2F;#_concurrency_parallelism_and_preemptive_multitasking" rel="nofollow">https:&#x2F;&#x2F;blog.stenmans.org&#x2F;theBeamBook&#x2F;#_concurrency_parallel...</a>) isn&#x27;t very clear which bits are in the C code (the BEAM) or the Erlang code (the ERTS).
phoe-krk超过 4 年前
In the exception example, there is a line saying:<p><pre><code> {&#x27;try&#x27;,{y,0},{f,13}}. </code></pre> Why is the symbol `try` quoted here? Does it need to, if its name is all lowercase?
评论 #24851715 未加载
alberth超过 4 年前
Has anyone seen benchmarks of the new JIT vs HiPE?<p>Everything I’ve read is comparing the JIT to the interpreter, but HiPE itself is faster than the interpreter. So is JIT faster than HiPE?
评论 #24853948 未加载
adenozine超过 4 年前
I wish there was a python implementation that ran on BEAM.
评论 #24852204 未加载
评论 #24852057 未加载
评论 #24852153 未加载
评论 #24853178 未加载
waynesonfire超过 4 年前
what&#x27;s the recommended IDE for erlang dev? I&#x27;ve tried getting emacs setup but boy it&#x27;s a struggle. I tried following this beast of a guide with questionable results,<p><a href="https:&#x2F;&#x2F;www.lambdacat.com&#x2F;post-modern-emacs-setup-for-erlang&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.lambdacat.com&#x2F;post-modern-emacs-setup-for-erlang...</a>
评论 #24854768 未加载
评论 #24854460 未加载
评论 #24854719 未加载
PrinceKropotkin超过 4 年前
What kind of static analysis is available for BEAM programs?
评论 #24855418 未加载
评论 #24854844 未加载