elixir小技巧:把浮点数转换为 IEEE754 的 binary 形式

2022-05-23
阅读 1 分钟
2.8k
IEEE754 标准规定了浮点数应该如何被表示为二进制形式,这也是大多数编程语言采用的标准。在 elixir 里面,我今天才发现可以很容易地将浮点数转换为这种表现形式。binary16 {代码...} binary32 {代码...} binary64 {代码...} 附录[链接][链接]

Erlang OTP25 升级笔记

2022-05-11
阅读 1 分钟
4.2k
昨天晚上耍手机看到 erlang OTP 25 正式版发布了,今天一大早就起来安装。安装步骤一直用的 asdf 这个软件安装工具,很方便。执行 {代码...} 然后就是漫长的等待,可以先去刷个牙。安装成功后,将其设置为当前版本 {代码...} 可以通过执行 erl 来检查版本 {代码...} 由于我之前安装的 elixir 版本是预编译好的,所以也需...

[elixir! #0082] application controller 应用是如何被载入和启动的

2021-11-28
阅读 5 分钟
2.2k
熟悉 erlang/elixir 的朋友们应该知道 application 的概念,它是一种特殊的结构,用于启动和停止一个应用。每当我们新建一个 erlang/elixir 项目,也同时新建了一个同名的 应用。在使用依赖库的时候,一般每个依赖库也是一个应用,会在我们运行项目时被载入和启动。

[elixir! #0081] 编译后的 beam code 重建为 erlang 代码

2021-11-24
阅读 2 分钟
3.8k
elixir 或 erlang 或其它运行在 beam vm 上的语言,都会被编译成 .beam 文件。那么能否通过这些文件重建 erlang 代码呢?答案是可以的。

[elixir! #0080] 读 erlang 开发团队博客 之 N 对 1 并行消息的性能优化

2021-11-12
阅读 2 分钟
3k
自从 erlang OTP 团队开设技术博客以来,很多高质量的文章让我们有机会能够了解 erlang 内部的各种机制。 譬如最近的这篇 [链接] ,就讲述了在 erlang 虚拟机中是如何对 “N对1” 的进程消息传递进行性能优化的。

[elixir! #0079] erlang 版本升级 22 -> 24

2021-10-20
阅读 1 分钟
4.2k
前几天升级了 elixir 版本, 今天想着干脆把 erlang 的版本也升级一下好了。听说 OTP24的性能有很大提升。升级之后一编译,果然又报了好些警告&错误,我们来一一解决。

[erlang] 什么是supervisor_bridge

2018-07-28
阅读 2 分钟
2.1k
在OTP的源代码中,我发现了一个陌生的behaviour,名为supervisor_bridge。它的作用是什么,和普通的supervisor又有什么区别呢?

[elixir! #0047] 简单对比record, map, keyword

2017-09-26
阅读 3 分钟
2.9k
今天写个suan好了, 不是大蒜的suan, 是算盘的算. 有个人一直和我争, erlang里面record和map哪个更好. 我语重心长,循循善诱: "就用map啦, 多方便, record是什么鬼, 不就是tuple吗". 那人还不服: "record速度比map快多了, map辣鸡". 那我今天就来算一下, 看谁打脸.

[elixir! #0045] 确认路径上的文件夹都存在

2017-08-18
阅读 1 分钟
2k
{代码...} 确认路径上的文件夹都存在, 如果不存在则新建. 也可使用 {代码...}

erlang 快速排序算法, 单核与多核版本

2017-08-08
阅读 2 分钟
3.3k
前几天在书上看到 quicksort 算法, 于是到 rosettacode 上找了一下 erlang 的实现. 原理 {代码...} 首先找到一个参照值(pivot), 再把所有元素分为(<pivot)和(>=pivot)两部分, 再重复此步骤直到排序完成. 单进程版本 {代码...} 多进程版本 {代码...} rosetta 上的多进程版本有点小bug, 顺手修复了:) 测试 测试数据...

[elixir! #0041] I, Actor

2017-07-02
阅读 2 分钟
2.3k
计算机科学中的演员模型是并行计算的数学模型,将“演员”视为并行计算的通用原语。 响应于收到的消息,演员可以:做出本地决定,创建更多演员,发送更多消息,并确定如何响应接收到的下一条消息。 演员可以修改私人状态,但只能通过消息相互影响(避免需要任何锁)。 ---- Wikipedia

[elixir! #0039] run_erl ---- elixir服务器打包后的日志配置

2017-06-28
阅读 1 分钟
2.9k
当我们使用 distillery 等工具将 phoenix 服务器项目打包, 运行之后, 我们会在项目的根目录发现 var/log 文件夹, 其中包含了服务器运行时产生的日志. 我们可以通过 run_erl 来对这些日志进行配置.

[elixir! #0035][译] 单进程, 还是多进程? by Saša Jurić

2017-04-24
阅读 10 分钟
3.9k
是将所有东西放在一个进程里, 还是, 把我们所需的 state 中的每一小块各自放在单独的进程中, 这是个问题. 在本文中, 我将讨论使用和不使用进程. 我还会讨论如何将复杂的状态逻辑与其它关系分开, 例如时间行为以及跨进程通信.

[elixir! #0032] 在 elixir 中使用 ets (2) ---- 匹配查询

2017-03-16
阅读 1 分钟
2.4k
上次我们介绍了 ets 表的基本配置方法, 这次我们将通过 phoenix pubsub 的源码来了解 ets 中的一些其他操作方法. 新建 ets 表 {代码...} 这里 ets 表中元素允许重复的 bag, 同时允许并发读写, 最大限度提升性能. 插入新数据 {代码...} 新的数据以 {key, value} 的形式插入. 匹配并删除 {代码...} 匹配 ets 表中的数据, ...

(译文)如何开始学习Elixir

2016-09-01
阅读 12 分钟
6.8k
本教程将会使用Elixir来实现这样的传送门:我们将使用不同的颜色来创造门,并在它们之间传送数据!甚至还将学习如何通过网络在不同的机器上建造门。