系统与数据库2013haskell.cs.yale.edu
Mio:面向 GHC 的高性能多核 I/O 管理器
Mio: A High-Performance Multicore IO Manager for GHC
进阶 · 约 60 分钟读完前置知识:Haskell 基础、GHC 运行时系统、并发与事件驱动 IO
导读
这篇论文介绍 Mio——为 GHC(Glasgow Haskell Compiler)运行时系统设计的高性能多核 IO 管理器,目标是让 Haskell 程序在多核环境下处理 I/O 事件时具备良好的扩展性(论文发表于 Haskell 相关研讨会)。据评论补充,Mio 将随 GHC 7.8.1 一起发布。
HN 关注点:Haskell 运行时的多核 I/O 性能进展,以及它可能对 Web 框架基准测试成绩带来的影响。
HN 评论精选
这几条评论里:支持 1 质疑 1 补充 1
补充补充信息:Mio 将随约当年 10 月发布的 GHC 7.8.1 一同推出。
文件里还写着“Mio 将作为 GHC 7.8.1 的一部分发布”,如果我没记错,GHC 7.8.1 计划在 10 月左右发布。不错。
quchen查看英文原文
The file also states that "Mio will be released as part of GHC 7.8.1", which is scheduled around October if I recall correctly. Neat
支持期待 Mio 落地后 Haskell 框架在 TechEmpower 基准中的表现。
等它发布后,再回头看看 TechEmpower 的基准测试会很有意思(http://www.techempower.com/benchmarks/)。
DennisP查看英文原文
It's going to be interesting to revisit techempower's benchmarks when this comes out. http://www.techempower.com/benchmarks/
质疑提出疑问:纯函数式语言的形式化特性是否也能用于改进 GC,还是受限于停机问题。
我最近一直在琢磨纯函数式语言里的垃圾回收。人们常说,静态类型的纯函数式语言能让编译器做更多的正确性检查。那么同样的形式化推理能力,难道不也应该能带来更好的垃圾回收算法吗?还是说这实际上是在要求解决停机问题?
fauigerzigerk查看英文原文
I've been wondering about garbage collection in pure functional languages lately. It is often said that statically typed pure functional languages allow the compiler to do a lot more correctness checking. Shouldn't the same formal reasoning features also enable much better garbage collection algorithms? Or would that be asking for a solution to the halting problem?
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2013Hacker News 讨论帖226 分 · 78 评
同领域还值得读
I/O 比 CPU 更快——让我们划分资源并消除操作系统抽象
I/O Is Faster Than CPU – Let’s Partition Resources and Eliminate OS Abstractions
指出在现代服务器硬件上 I/O 速度已接近甚至超过 CPU,传统操作系统抽象反而成为瓶颈。
系统与数据库2019 · 817 分 · 277 评进阶 · 约 30 分钟编辑精选使用 io_uring 的高效 I/O
Efficient IO with io_uring
由 Linux 内核开发者 Jens Axboe 撰写,介绍 Linux 新的异步 I/O 接口 io_uring。
系统与数据库2019 · 426 分 · 96 评进阶 · 约 45 分钟编辑精选线程对大多数用途而言是个坏主意(1995)
Threads Are a Bad Idea for Most Purposes (1995)
这篇 1995 年的文章由 John Ousterhout 撰写,讨论为什么线程对大多数用途而言是坏主意,并主张事件驱动编程通常更简单、更高效。
系统与数据库2017 · 423 分 · 382 评进阶 · 约 25 分钟编辑精选学习型索引结构之论证
The Case for Learned Index Structures
提出把索引看作一种"模型":既然 B-tree 等结构本质上是在学习数据的分布,就可以用机器学习模型(如回归模型、神经网络)来近似键到位置的映射,从而替代 B-tree、哈希索引…
系统与数据库2017 · 398 分 · 66 评 · 引用 25进阶 · 约 60 分钟编辑精选FoundationDB:一个分布式、解耦的事务型键值存储
FoundationDB: A distributed, unbundled, transactional key value store
介绍 FoundationDB:一个分布式、解耦设计的事务性键值存储。
系统与数据库2021 · 283 分 · 99 评进阶 · 约 90 分钟编辑精选