Go msgp序列化使用详解!比Json更快!面试时吊打面试官!

本文介绍了Go中msgp序列化的使用,包括msgp的基本概念、在golang中的应用以及如何通过go generate命令生成序列化代码。msgp作为高效的二进制序列化格式,相比JSON,它更快、更小。文章分享了作者在项目中用msgp替换JSON后的性能提升体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

msgp简介

msgp是MessagePack的缩写,是一种高效的二进制序列化格式,用它官网的一句简单的介绍就是:“It’s like JSON.but fast and small.”,JSON大家都知道吧,基本JSON能做的事,msgp都能做,而且比JSON更快,更小。 官网在这,大家想详细了解的直接移步到官网去围观吧。

msgp应用在golang

既然msgp这么好,那支持的语言肯定很多吧,没错,到目前为止,msgp对大部分主流的语言都已经支持得很好了,包括golang,官方推荐的库在git上的地址https://github.com/tinylib/msgp 安装就直接go get就行

go get -u -t github.com/tinylib/msgp

这样msgp就直接安装到了golang环境中的工具库中。
由于msgp的原理是将字符序列化为二进制格式,因此需要一些转换代码来辅助序列化,当然这些代码并不用我们手动编写,而是由msgp工具生成,结合go1.4以后出来的子命令go generate,在编译前生成所需的辅助代码,就可以调用msgp库中的序列化方法了

package main

import (
    "fmt"
)

//go:generate msgp

type Foo struct {
   
    Bar string  `msg:"bar"`
    Baz float64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值