
深入 Expo Modules 2.0 的新 JNI 层
Kolibri 是 Expo Modules 2.0 在 Android 上的 JNI 库。它把安全封装做成可选的,让 C++ 指针直接传进 Kotlin,并让 JS 数据走共享二进制缓冲区。
更多 性能
首页
Kolibri 是 Expo Modules 2.0 在 Android 上的 JNI 库。它把安全封装做成可选的,让 C++ 指针直接传进 Kotlin,并让 JS 数据走共享二进制缓冲区。

Software Mansion 讲了技术栈决策背后的五个问题和三种方案,并解释了 Gobi 为何一步步地把 React Native 应用迁到原生 iOS 和 Android。

IBM 花了数百万美元打造深蓝,才在 1996 年击败 Kasparov。三十年后,一台 200 MHz 的 Pentium Pro 跑起现代 Stockfish,棋力约 3300 Elo,几乎肯定能赢。

同一个宝可梦应用,12 个框架各让 agent 写 5 遍,结果 Hono+htmx 最便宜,Angular 最贵,代码量差了七成,Lighthouse 分数却几乎一样。
Flamerix AI 在自己的 OpenTelemetry 里发现,agent_summary 占了 Claude Code 全部花费的 16.4%,比主对话还多:每 30 秒把整个 agent 会话记录发给 Opus,只为生成三五个字的进度描述。他们用一个 80 行的 Bun preload 把它关掉,并逐版本给出了验证数据。
Anthony Green 用 Common Lisp 写了 OpenLDK,把 Java 字节码翻成 Lisp 再交给 SBCL 编译。Java 类成了 CLOS 类,七门 JVM 语言能嵌进同一个 Lisp 表达式,初始化好的 Spring Boot 应用存进镜像后 84 毫秒启动。

用 Roc 编写的 DEFLATE 包在 144 项 Silesia 基准测试中,在 M1 MacBook Pro 上中位数仅比手工调优的 C 慢 2.6%,在 Ryzen 3900X 上慢 8.9%。
用 Rust 或 C 重写一个慢程序,通常不会让它变快。Sean Goedecke 认为绝大多数的加速来自重新设计程序要做什么,而不是换一门跑得更快的语言。

Rust 的设计目标就是让垃圾回收不再必要,Clayton Ramsey 却给它写了一个能回收循环引用的并发垃圾回收器,用 Drop、访问者 trait 和收集标签绕开引用计数的死角,再拿它和能找到的所有 Rust 收集器比了一轮基准测试。

earstrip 用耳切法换掉了引擎里的约束 Delaunay 三角化,把华沙周边 374 万个多边形的切分从 2.93 秒压到 489 毫秒。作者一个想法一次提交地重放了整个过程,每节末尾都标着这一步省下多少。

Mark Bartlett 复现了 esp32-ai 的 TinyStories 模型,发现真正的瓶颈在 PSRAM 带宽,CPU 并不吃紧。五次不改变输出的改动把单 token 时间从 94.7 ms 压到 43.3 ms,生成文本仍逐字节相同。

tsrs 在四个真实项目上比 TypeScript 7.0 快 3.8 到 8.1 倍,峰值内存只剩两成左右。它不做 fork,跟着 TypeScript 团队的决定走,并借 Vinext 那套 agent 流程与上游保持同步。

用暴力搜索遍历所有短的位运算公式,找到一个无分支取浮点数最低置位的写法,还发现一处复用子表达式的改写,这是编译器不会自己想到的。

Anthropic 每天的合并次数涨了十倍以上,于是团队用五个月把基于 git 的方案换成了自研的版本控制系统 Scion,并给出了各项操作到底快了多少的数字。
一个 C 语言里的小型 arena 分配器全解:从它解决的生命周期问题,到可运行实现的结构体、内存对齐和 realloc 路径。

Postgres 19 将 TOAST 压缩从 pglz 切换为 LZ4。LZ4 更快,但不总是更小,而且使用它后某些读取会变慢。

双向 KV 传输让 vLLM 的 prefill 节点在后续对话轮次里复用 decode 节点先前算好的 KV,省掉重复的 prefill 重算,长多轮提示下 TTFT 最多降低 3.3 倍。
读密集型工作负载中RwLock败给了无锁原子操作。文章构建了两种版本,对它们进行基准测试,并解释了为什么代价与其说在于锁本身,不如说在于同步发生的位置和频率。
一个小型寄存器分配器的逐步讲解,从活跃区间和冲突到固定寄存器与溢出。该设计更注重清晰性而非吞吐量,意在作为一份配方来阅读,而不是一个库。

Miguel Grinberg在Python 3.15上针对多种工作负载和硬件重新运行了他的基准测试套件,并报告了解释器在哪些方面变快、哪些方面没有变快。图表并排展示了单线程和多线程测试。
在发布strands-decider之后,Marc Brooker被问及为什么该模型使用解码器而不是编码器。他比较了五种设计,发现对于这个分类任务,解码器表现不俗,在某些条件下还能胜出。

CedarDB 用 SQL 查询实现了 Doom 的游戏逻辑和渲染器,包括死亡竞赛。文章介绍了整体架构、游戏循环、SQL 中的 BSP 遍历,以及数据库的执行模型在哪些方面恰好非常契合。
Futhark通常将数组程序编译为GPU内核,但某些工作负载在许多CPU核心上运行得更好。本文以稀疏雅可比计算为例,介绍当目标平台是CPU而非GPU时,编译器需要做出哪些改变。
Go 1.27 推出可移植 simd 包,用 simd.Uint8s 等类型隐藏 AVX512、NEON 与 wasm 的向量差异。