双重哈希:从开放寻址到 Bloom Filter 工程实践双重哈希(Double Hashing)常见于两个场景:在开放寻址哈希表中生成冲突后的探测位置;在 Bloom Filter 中由两个基础哈希值派生多个位图索引。两种场景使用相同的数学形式,但解决...
阅读全文...
Neovim 使用 ELP 内存占用过高的一次排查记录
Neovim 使用 ELP 内存占用过高的一次排查记录最近在 Neovim 中使用 ELP(Erlang Language Platform) 作为 Erlang 的 LSP 服务器时,遇到了一次比较典型的内存占用过高问题。ELP 本身是 Rust 实现...
阅读全文...
阅读全文...
[译注与拓展] 哈希数组映射树(HAMT)的原理与Erlang对其的实现
声明: 本文主要内容编译自 Nick M 的英文技术分享 《Grokking Hash Array Mapped Tries (HAMTs)》。笔者在译介的基础上,修正了原作中关于哈希冲突处理的逻辑细节,并观察了 Erlang 源码分析出 Erlang ...
阅读全文...
阅读全文...
线上内存优化方案实战
一次 Erlang 线上内存优化分析:ETS 大对象、compressed 表与 eheap allocator 碎片背景近期对一批 Erlang 线上节点做内存采样时,发现整体内存水位偏高。采样内容主要包含两部分:ETS 表维度的内存占用;ets_al...
阅读全文...
阅读全文...
基于原型驱动的ai工作流程
游戏开发中模糊需求的应对:用「最小原型 + 反向校准」替代传统前置对齐背景:我们一直面临的沟通困境在游戏功能开发中,策划经常会给出一份相对模糊的需求文档。程序员阅读后往往无法完全把握核心意图,尤其是一些涉及服务端状态流转、边界处理、异常路径、权限控制、跨...
阅读全文...
阅读全文...
Erlang Memory Sub System
这一章节只是简单教一下内存子系统相关的知识,如果想更深入学习内存子系统可以读一下 "Understanding the Linux Kernel" or "Linux System Programming"这一章节主要是教两种动态可分配内存:堆、内存映射...
阅读全文...
阅读全文...
Erlang Schedualing
调度器是用来让erlang系统决定哪些代码要跑和什么时候跑的,10.1 并发、并行、抢占式多任务(Preemptive Multitasking)SMP:Symmetric Multi-Processing(对称多处理)在Erlang/ERTS中的含义S...
阅读全文...
阅读全文...
Erlang Garbage Collection
《The BEAM Book》第十二章:垃圾回收器 (Garbage Collection) 深度详析本章的核心在于解释 BEAM 如何在不停止整个系统的情况下,高效地管理内存。12.1 复制式垃圾回收 (Copying Garbage Collecti...
阅读全文...
阅读全文...
Erlang generic beam instructions
通用的BEAM指令集通用指令集(Generic):是官方标准,编译器和虚拟机都用它,相对稳定,只在大版本间变化;特定指令集(Specific):是内部优化实现,可能随时改变,不应该基于它开发工具。要想开发编译器、虚拟机或分析工具,必须基于通用指令集,这样...
阅读全文...
阅读全文...