当前位置: 首页 > news >正文

公司网站实用性wordpress相册展示

公司网站实用性,wordpress相册展示,注册公司取名字大全,公司网站包括哪些内容更新日期:2025年9月8日。 Github 仓库:https://github.com/SaiTingHu/ProtobufNet 索引一、Protobuf简介二、使用Protobuf1.获取protobuf-net的DLL2.标记数据结构3.序列化数据4.反序列化数据5.protobuf-net性能测试一、Protobuf简介 Protobuf&#xff0…

更新日期:2025年9月8日。
Github 仓库:https://github.com/SaiTingHu/ProtobufNet

索引

  • 一、Protobuf简介
  • 二、使用Protobuf
    • 1.获取protobuf-net的DLL
    • 2.标记数据结构
    • 3.序列化数据
    • 4.反序列化数据
    • 5.protobuf-net性能测试

一、Protobuf简介

Protobuf(Protocol Buffers)是Google开发的一种轻量级、高效的结构化数据序列化格式,用于数据存储、传输和通信。它是一种语言无关、平台无关的数据描述语言,通过定义数据结构和类型,可生成对应编程语言的代码,实现数据的序列化与反序列化。

Protobuf的核心特点包括:

  1. 高效性:相比XML、JSON等格式,Protobuf序列化后的数据体积更小,解析速度更快,适合性能敏感场景。
  2. 结构化定义:通过.proto文件描述数据结构(如字段类型、编号等),编译后可生成多语言代码(如Java、Python、C++等),确保跨平台兼容性。
  3. 灵活性:支持数据模式的扩展,新增字段不会破坏已有代码的兼容性。

二、使用Protobuf

在Unity中推荐使用Protobuf的.Net实现:protobuf-net。

1.获取protobuf-net的DLL

由于protobuf-net为基于Visual Studio的项目,所以我们可以通过在Visual Studio中以NuGet包的形式获取protobuf-net的DLL。

不过此过程我们可以跳过,因为在文章开头的源码链接里(ProtobufNet模块)已包含了protobuf-net所需的所有DLL。

2.标记数据结构

且由于protobuf-net的特性,我们在使用时不用定义.proto文件等这些繁琐的流程,只需在需要序列化的数据结构类中做出标记即可。

比如如下一个玩家信息类:

[ProtoContract]
public class PlayerInfo
{/// <summary>/// 玩家ID/// </summary>[ProtoMember(1)]public long ID;/// <summary>/// 玩家姓名/// </summary>[ProtoMember(2)]public string Name;/// <summary>/// 玩家年龄/// </summary>[ProtoMember(3)]public int Age;/// <summary>/// 玩家性别/// </summary>[ProtoMember(4)]public string Sex;
}

使用[ProtoContract]标记序列化类;
使用[ProtoMember(序号)]标记序列化成员;

注意:由于protobuf-net会使用 ProtoMember 指定的序号来序列化、反序列化数据(省去了在数据中包含成员名称所占用的空间),所以在单个类中序号不能重复,且后续修改成员的名称也不会影响之前已序列化的数据。

3.序列化数据

完成数据结构的标记后,序列化数据的方式将非常简单:

        PlayerInfo playerInfo = new PlayerInfo() {ID = 0,Name = "张三",Age = 25,Sex = "男"};//将playerInfo对象序列化为字节数组byte[] datas = ProtoBufToolkit.Serialize(playerInfo);

4.反序列化数据

反序列化数据的方式也非常简单:

        PlayerInfo playerInfo = new PlayerInfo();byte[] datas = GetPlayerDatas();//将字节数组反序列化到已有对象playerInfo,省去重复创建对象的开销,降低GC压力ProtoBufToolkit.Deserialize(datas, playerInfo);

5.protobuf-net性能测试

在此我们做一个小小的性能测试,用于对比protobuf-netJson在序列化性能上的差异:

        PlayerInfo playerInfo = new PlayerInfo() {ID = 0,Name = "张三",Age = 25,Sex = "男"};byte[] datas = ProtoBufToolkit.Serialize(playerInfo);Log.Info($"使用protobuf-net序列化数据,序列化后大小:{datas.Length} 字节。");string json = JsonToolkit.JsonToString(playerInfo);datas = Encoding.Default.GetBytes(json);Log.Info($"使用Json序列化数据,序列化后大小:{datas.Length} 字节。");

在这里插入图片描述

可以看到,protobuf-net序列化后的数据比Json小了数倍,这在一些高频数据交互的网络场景能够节省大量带宽,并显著降低延迟。

所以Protobuf是网络通信、数据存储、跨平台数据交换等场景的首选。

http://www.dtcms.com/a/543310.html

相关文章:

  • 电子商务网站建设 以为例怎么做网站推广线下
  • 企业网站建设的一般要素包括什么android毕业设计代做网站
  • 网站怎么添加导航栏wordpress 自定义功能
  • 迁安做网站购物网站建设报价表
  • 手机制作最简单钓鱼网站企业网站建设珠海
  • 杭州网站建设加q479185700做优惠券网站需要淘宝哪些接口
  • asp.net 网站访问量学校教务网站的设计与实现
  • 廊坊网站制作设计网站备案密码
  • 做网站的品牌公司如何提升网站收录
  • 吉林省住房城乡建设厅网站北京金方网站设计
  • 海南住房和城乡建设部网站紧急通知网页升级
  • 学生校园网站模板dw+如何做自适应网站
  • 爱心建站网国内免费建网站
  • 国外的自建网站怎么做html5手机网站 源码
  • 深圳企业网站开发杭州做网站
  • 点点 网站建设网站主题和建设
  • 合肥金融网站设计北京it外包公司排行榜
  • 网站运营与推广计划书怎么做环球资源网成立时间
  • google网站收录入口网站如何才能被百度收录
  • 简述企业网站建设的流程漯河网页制作
  • 商丘手机网站建设网址怎么做成二维码
  • 网站开发 教程企业网站托管如何更有效
  • 南宁西乡塘区网站建设创意赣州网站建设
  • 网站浮标怎么做wordpress 文章分类页面
  • 公司网站建设周期及费用房产网站建设公司
  • 网站优化排名的公司有哪些猎头公司名字
  • 厦门网站开发城乡建设管理局的网站
  • 山东住房和城乡建设厅网站注册中心武昌网站制作公司
  • 技术合同 网站开发oa系统是什么
  • 企业网站建设情况说明创建网站的目的是什么原因