【Rust日报】2024-04-29 wgpu: v0.20.0 发布

Zed 解析: Rope 和 SumTree

Zed是 Rust 构建的文本编辑器, 本文将介绍他的核心数据结构——Rope和SumTree。

Rope和传统字符串比较:

  • Rope是一种二叉树结构,每个叶节点储存一个字符串和其长度,而树上的其他节点则存储所有左子树叶节点长度的总和。与字符串相比,在编辑大型文件或进行频繁编辑时,Rope更内存和性能高效,因为可以避免大量内存分配和字符移动。

Zed的Rope实现——SumTree:

  • Zed没有选择典型的Rope实现,而是采用了SumTree,这是一种特殊的B+树,允许在O(log N)时间内进行高效的数据遍历。SumTree中的每个节点都包含一个摘要(Summary),这个摘要可以是任何信息,如文本的UTF-8和UTF-16的长度、行数等。

使用SumTree的好处:
SumTree不仅支持并发访问和多线程操作,还能快速生成文本的快照,非常适合进行异步保存、备份或多用户编辑等操作。

Zed中有超过20个功能使用了SumTree结构,如项目中的文件列表、git blame信息、聊天消息、诊断信息等。总结来说,SumTree作为Zed的核心组件,不但具备了常规Rope的优势,还赋予了Zed极高的性能和灵活性,使其成为一个高效的代码编辑器。

原文链接 https://zed.dev/blog/zed-decoded-rope-sumtree

wgpu: v0.20.0 发布

wgpu 是 跨平台、安全、纯Rust 的图形 API, 目前 v0.20.0 版本发布了,主要变化:

  • 现在Wgpu支持在管道中覆写常量

  • 许多数字内建函数增加了常量求值实现

  • Wgsl添加了一些仅限本地的新特性,如子组操作

  • Shaders中支持64位有符号和无符号整数

  • 等等...

更多特性见 原文链接 https://github.com/gfx-rs/wgpu/releases/tag/v0.20.0

--

From 日报小组 BobQ, FBI小白

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss

  • 微信公众号:Rust语言中文社区

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值