场景

C#中使用ProtoBuf提高序列化速度对比二进制序列化:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99850052

实现

参考上面那篇博客,进而将序列化后的数据写入文件。

新建Winforn程序,然后拖拽两个Button。

第一个Button用来构建一个1000长度的list对象。

先声明一个全局的list变量。

List<Request> requestList = new List<Request>();

然后在第一个按钮点击事件中

 private void button4_Click(object sender, EventArgs e){DateTime begin = DateTime.Now;Console.WriteLine("protobuf初始化数据开始" + begin.ToString("yyyy-MM-dd HH:mm:ss"));for (int i = 1; i <= 1000; i++){requestList.Add(new Request() { id = i,password = "密码"+i});}DateTime end = DateTime.Now;TimeSpan ts = end - begin;Console.WriteLine("protobuf初始化数据结束" + end.ToString("yyyy-MM-dd HH:mm:ss"));Console.WriteLine("共花费" + ts.TotalSeconds);}

注:

这里的类文件是根据.prpto文件生成的,所以其初始化赋值方式注意要如上使用。

然后在第二个按钮的点击事件中:

 private void button6_Click(object sender, EventArgs e){DateTime begin = DateTime.Now;Console.WriteLine("ProtoBuf保存数据开始" + begin.ToString("yyyy-MM-dd HH:mm:ss"));using (System.IO.FileStream fs = new System.IO.FileStream(@"E:\testdata1\Record2.data", System.IO.FileMode.Create, System.IO.FileAccess.Write)){ProtoBuf.Serializer.Serialize(fs, this.requestList);}DateTime end = DateTime.Now;TimeSpan ts = end - begin;Console.WriteLine("ProtoBuf保存数据结束" + end.ToString("yyyy-MM-dd HH:mm:ss"));Console.WriteLine("花费时间" + ts.TotalSeconds);}

C#中使用ProtoBuf将list进行序列化并保存到文件相关推荐

  1. ProtoBuf的介绍以及在Java中使用protobuf将对象进行序列化与反序列化

    场景 ProtoBuf简介 protocol buffers 是一种语言无关.平台无关.可扩展的序列化结构数据的方法,它可用于(数据)通信协议.数据存储等. Protocol Buffers 是一种灵 ...

  2. Netty中集成Protobuf实现Java对象数据传递

    场景 Netty的Socket编程详解-搭建服务端与客户端并进行数据传输: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1086 ...

  3. 146_路由器项目_附加功能:可以拿取文件内IP保存到过滤链表中,过滤IP也可以保存到txt文件,也可以终端输入IP,保存到文件【单链表的尾插、头插、删除指定节点、遍历等】】

    动图: ip_file.h: #ifndef IP_FILE_H #define IP_FILE_H #include <stdio.h> #include <string.h> ...

  4. 在网络通讯中应用Protobuf

    Protobuf的设计非常适用于在网络通讯中的数据载体,它序列化出来的数据量少再加上以K-V的方式来存储数据,对消息的版本兼容性非常强:还有一个比较大的优点就是有着很多的语言平台支持.下面讲解一下如何 ...

  5. unity项目源码_在Unity中使用protobuf

    Protocol Buffers (通常简称为protobuf) 是Google开发的一种格式,这种格式与开发语言无关.与运行平台无关,用于序列化结构数据,并且很容易扩展.这种格式可以用于通信协议.数 ...

  6. 在java程序中使用protobuf

    文章目录 简介 为什么使用protobuf 定义.proto文件 编译协议文件 详解生成的文件 Builders 和 Messages 序列化和反序列化 协议扩展 总结 简介 Protocol Buf ...

  7. php protobuf 二进制,PHP环境中使用ProtoBuf数据格式

    1.syntax="proto3":表明使用的是proto3格式,如果不指定则为proto2 2.package test:定义包名为test,生成类时,会产生一个目录为test ...

  8. java图片序列化_Java中的强大武器——对象的序列化

    原标题:Java中的强大武器--对象的序列化 所谓对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象.这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象, ...

  9. 怎样在Spark、Flink应用中使用Protobuf 3的包

    如果在在Spark.Flink应用中使用Protobuf 3的包,因为Spark默认使用的是2.5版本的包,提交任务时,可能会报如下异常: com.google.protobuf.CodedInput ...

最新文章

  1. DOM---文档对象模型(Document Object Model)的基本使用
  2. ubuntu安装python编译器_在Ubuntu上安装/编译grpc时出错
  3. python中eof啥意思,什么是Python的完美对应“而不是EOF”
  4. Kubernetes(六) - Secret和私有仓库认证
  5. BZOJ1941:[SDOI2010]Hide and Seek(K-D Tree)
  6. mac终端命令行总结
  7. oracle 修索引改空间_Oracle如何更改表空间的数据文件位置详解
  8. 性能测试十四:Xshell链接linux虚拟机
  9. 失败创业者的告白:初创团队应有一位绝对领导者
  10. 管理exchange 2010用户邮箱本地移动请求
  11. Dubbo(十一)dubbo的超时重试配置以及启动检查
  12. windows下DOS命令杀掉Nginx应用进程
  13. 天地图JS API制作专题图
  14. 阅读--2020-7-19 CCFC2019 使用向量自回归和堆积LSTM模型进行多变量工作量预测
  15. 外贸建站教程,WordPress外贸自建站流程,会打字即可学会
  16. 大前端课程学习心得体会+学习笔记
  17. vtune下载 windows_VtuneApi32e.dll
  18. OpenGL FBO学习
  19. 怎么把视频压缩到100MB以内
  20. LM75AD温度传感器的应用(2)

热门文章

  1. Elasticsearch Metric Aggregation指标聚合详解
  2. Spring cloud gateway的自定义异常响应
  3. Java后端架构开荒实战(二)——单机到集群
  4. 为什么不能在SQL拼接模糊匹配符号
  5. oracle一行变一列,oracle多行变一行
  6. 软件测试工作常用linux命令,软件测试工程师工作中常用的Linux命令
  7. 9-Qt6 QString和QChar
  8. jquery 乱码 传参_jquery获取URL中参数解决中文乱码问题的两种方法
  9. linux下如何屏蔽代码,linux c 怎么屏蔽信号 使用sigprocmask命令
  10. 对象工厂PHP,php – 有一个工厂用于创建对象的好处?