百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
H

hyperpb-go

> 编程语言
开源

在 Go 中的动态 Protobuf 解析速度提高了 10 倍,甚至比生成的代码还要快 3 倍。

679 stars0 点赞1 次浏览
访问官网GitHub

工具介绍

在 Go 中的动态 Protobuf 解析速度提高了 10 倍,甚至比生成的代码还要快 3 倍。

hyperpb 是一个高度优化的动态消息库,适用于 Protobuf 或只读工作负载。它旨在作为 [dynamicpb][dynamicpb] 的替代方案,protobuf-go 中用于处理完全动态消息的标准解决方案。hyperpb 的解析器是一种高效的虚拟机,支持特殊指令集,是 [UPB 项目][upb] 开创的表驱动解析 (TDP) 的一种变体。我们的解析器速度非常快,比 dynamicpb 快 10 倍,而且通常比 protobuf-go 生成的代码快 2-3 倍,尤其是在具有许多嵌套消息的工作负载中。

这里我们展示了 hyperpb 的两个基准版本:不启用任何优化的原生性能,以及启用我们目前提供的所有优化的实时配置指导优化 (PGO)。这些基准是您可以使用 make bench 运行的子集。

hyperpb 的核心思想是,您必须在运行时使用 hyperpb.Compile 预编译解析器,就像正则表达式需要使用 regexp.Compile 一样。这样做可以让 hyperpb 对消息进行优化,将其延迟到运行时,这使我们能够不断改进布局优化,而无需对源代码进行任何破坏性更改。

目前, hyperpb 仅支持通过反射 API 操作消息;当您需要编写一个非常通用的服务,从网络上下载类型并使用这些类型解析消息时,它表现最好,这迫使您使用反射。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Gogrpcprotobufprotocprotocol-buffers

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言