场景

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

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

ICSharpCode.SharpZipLib.dll 下载:

https://download.csdn.net/download/badao_liumang_qizhi/11586902

C#中将list进行序列化并使用SharpZipLib进行压缩:

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

实现

参照第一篇文章引进ProBuf,然后下载ICSharpCode.SharpZipLib.dll,再参照第三篇文章

引用ICSharpCode。

在窗体上拖拽Button按钮,然后双击进点击事件。

private void button8_Click(object sender, EventArgs e){DateTime begin = DateTime.Now;Console.WriteLine("ProtoBuf压缩开始" + begin.ToString("yyyy-MM-dd HH:mm:ss"));//初始化数据--创建10000个对象listfor (int i = 0; i < 10000; i++){requestList.Add(new Request() {id=i,password="密码"+i});}try{//创建内存流对象MemoryStream ms = new MemoryStream();//序列化对象ProtoBuf.Serializer.Serialize<List<Request>>(ms, this.requestList);//把内存流对象写入字节数组byte[] buffer = ms.ToArray();//关闭内存流对象    ms.Close();//释放资源                        ms.Dispose();                                                            //创建文件FileStream fs = File.Create(@"E:\testdata1\Record4.zip");//创建zip输出流ZipOutputStream zipOutputStream = new ZipOutputStream(fs, buffer.Length);//ZipEntry用于表示Zip文件条目 --将会在压缩文件中创建Record4.data文件ZipEntry entry = new ZipEntry("Record4.data");//将其放进压缩文件中zipOutputStream.PutNextEntry(entry);//将字节数组写入文件zipOutputStream.Write(buffer, 0, buffer.Length);zipOutputStream.Finish();zipOutputStream.Close();zipOutputStream.Dispose();//关闭流fs.Close();//释放对象                        fs.Dispose();                                                       }catch (Exception ex){Console.WriteLine(ex.Message);}DateTime end = DateTime.Now;TimeSpan ts = end - begin;Console.WriteLine("ProBuf压缩结束" + end.ToString("yyyy-MM-dd HH:mm:ss"));Console.WriteLine("共花费 " + ts.TotalSeconds);}

效果

将其解压

C#中将list使用ProtoBuf进行序列化并使用SharpZipLib进行压缩相关推荐

  1. C#中将list进行序列化并使用SharpZipLib进行压缩

    场景 ICSharpCode.SharpZipLib.dll 下载: https://download.csdn.net/download/badao_liumang_qizhi/11586902 实 ...

  2. Java kryo/protobuf/protostuff序列化 or Json 性能对比

    Java kryo/protobuf/protostuff序列化 or Json 性能对比 - 腾飞的鹰 - 博客园 对于一个java object的序列化,想测一下使用json和使用一般序列化工具, ...

  3. ProtoBuf的序列化和反序列化(基础库)

    内容说明: 说明下什么是ProtoBuf ProtoBuf的序列化和反序列化 ProtoBuf的优势 前后端使用ProtoBuf交互 ProtoBuf简介: Google 的 ProtoBuf ==& ...

  4. Java基础19:IO流—缓冲流、转换流、序列化、打印流、压缩流和解压流

    IO流中的一些其他流:缓冲流.转换流.序列化.打印流.压缩流和解压流 1. 缓冲流 IO流除了一些基本的流,还有在此基础上发展出来的一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够 ...

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

    场景 ProtoBuf protocolbuffer是google 的一种数据交换的格式,它独立于语言,独立于平台. google 提供了多种语言的实现:java.c#.c++.go 和 python ...

  6. Python对Protobuf进行序列化与反序列化

    Python Protobuf 1.了解Protobuf: 1.1 Protobuf语法介绍: 2. Python使用Protobuf:(windows平台上) 1.了解Protobuf: 我们在使用 ...

  7. redis protobuf java_Protobuf序列化对象放到redis

    安装Protobuf 解压包,tar -xvf: cd进目录,执行:./configure --prefix=/Users/mrzhang/workspace/tools/protobuf make: ...

  8. protobuf简单序列化反序列化示例

    protoc命令格式 protoc    -I=SRC -cpp_out = DRC SRC\*.proto SRC:源路径: DRC:目的路径: 当出现下面无法打开文件错误时,应在工程属性目录下的包 ...

  9. ProtoBuf 常用序列化/反序列化API

    1.C数组的序列化和反序列化API //C数组的序列化和序列化API bool ParseFromArray(const void* data, int size); bool SerializeTo ...

最新文章

  1. 2022-2028年中国养老保险行业深度调研及投资前景预测报告
  2. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...
  3. python 学习(1)
  4. 2021-08-08
  5. RGBA alpha 透明度混合算法实现和测试
  6. linux中判断语句,Linux--shel的if判断语句--05
  7. python的浮点数_Python的浮点数损失精度问题
  8. mysql编码utf8改为g_修改MySQL的编码为UTF8
  9. varchar2 汉字长度问题
  10. JavaScript时间格式化工具函数
  11. mysql快照数据_制作mysql数据快照
  12. Unity3D教程:回合制游戏实现 1
  13. Linux系统中社保卡阅读
  14. MATLAB学习【第五部分】--第一节:矩阵的输入//冒号表达式矩阵---linspace函数生成向量---一般矩阵输入
  15. 移动端适配 postcss-pxtorem插件使用
  16. 基于Wireshark的TCP SACK重传介绍
  17. split()方法,limit参数作用
  18. javamail,XMail轻松实现发送邮件
  19. 2021年互联网大厂Java面经总结,保准看明白!
  20. 软件测试之测试计划与工具(三)

热门文章

  1. linux 760权限,Linux 文件rwx权限问题 chmod 777 XXX 任何人拥有最高权限
  2. python定义数组是带指针_在cython中声明numpy数组和c指针
  3. 简单示例立马搞懂Java日期格式中yyyy-MM-dd HH:mm:ss和YYYY-MM-dd hh:mm:ss的区别
  4. spring boot + zookeeper 注册中心
  5. MySQL5.7 Linux安装流程
  6. python 布尔值为f我的_python – 为什么我没有得到布尔值?
  7. x3m文件怎么转换成mp3_视频中的音频怎么单独提取出来转换成mp3格式
  8. 移动端html游戏开发,GitHub - PromeYang/GameBuilder: GameBuilder 是移动端轻量HTML5游戏快速开发框架,主要应用于活动推广。...
  9. c语言标量变量是什么,C语言中的结构和联合之间的区别
  10. pythondocx文档重叠_使用PYTHON实现docx文档的读写