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

为个人网站做微信服务号中国十大购物网站

为个人网站做微信服务号,中国十大购物网站,关于企业网站建设的市场比质比价调查报告,零食网站建设的必要性各位准备好了吗#xff01;这一次#xff0c;我们将深入探讨 Protocol Buffers#xff08;protobuf#xff09;及其在数据序列化中的超能力所在。 介绍 Protocol Buffers#xff0c;也被称为 protobuf#xff0c;是由谷歌开发的一种语言无关的二进制序列化格式。其主要…各位准备好了吗这一次我们将深入探讨 Protocol Buffersprotobuf及其在数据序列化中的超能力所在。 介绍 Protocol Buffers也被称为 protobuf是由谷歌开发的一种语言无关的二进制序列化格式。其主要目的是为了高效地序列化结构化数据用于系统间通信和数据存储。 Protocol Buffers 的主要优势 紧凑性Protobuf 提供高效的序列化生成较小的消息大小提升带宽利用效率。模式演进Protobuf 支持模式演进而不破坏兼容性允许对数据结构进行无缝更新。高效的序列化和反序列化Protobuf 提供快速高效的序列化提升整体系统性能。跨平台支持Protobuf 允许不同平台和语言之间无缝交换数据。 这些优势使得 Protobuf 成为在 Go 应用程序中进行高效数据通信和存储的强大工具。 它比 JSON 和 XML 更好的地方 XML即可扩展标记语言就像一张地图用标签帮助组织和结构化数据。它以一种人类和机器都能理解的方式呈现信息。然而XML 可能冗长并占用更多空间这可能降低性能使数据传输效率降低。 JSON即 JavaScript 对象表示法就像一个信使使用简单的键值结构来表示数据对象。它因易于阅读和使用而在 Web 服务之间传输数据时变得流行。但 JSON 的基于文本的格式可能导致更大的文件大小从而影响数据传输速度。 相比之下Protocol Buffersprotobuf在数据序列化领域脱颖而出。它就像一个魔术将数据转换为紧凑高效的二进制格式。Protobuf 以快速的数据处理和适应变化的数据结构而闻名并且在不破坏兼容性的情况下进行操作。它可以与不同的编程语言一起使用并确保数据的可靠性。 总之XML 和 JSON 各有用途但如果您需要强大且高效的数据序列化解决方案Protocol Bufferprotobuf是首选。它提供紧凑性、速度、灵活性和兼容性使其成为高效处理数据的首选方案。 在 Golang 中的序列化性能Protocol Buffers vs. JSON 言归正传让我们动手实践。 访问官方 Protocol Buffers GitHub 仓库https://github.com/protocolbuffers/protobuf下载与您操作系统兼容的编译器。使用 .proto 文件格式定义一个 Protocol Buffers 消息模式。 syntax proto3; package main; option go_package /;msgmodel;message MyMessage {int32 id 1;string name 2;string email 3; }编译文件 protoc — go_out. ./*proto 这个命令从 protobuf 模式生成 Go 代码绑定。--go_out 标志指定输出应为 Go 语言。这将生成一个 msg.pb.go 文件其中包含您的 protobuf 模式所需的代码绑定。 在 Golang 中实现一个基准测试使用 protobuf 和 JSON 对大型数据集进行序列化。 package mainimport (encoding/jsongithub.com/golang/protobuf/protogo-protobuf/model/messagelogtesting )const (iteration 10000000 //Number of iterations for the benchmark test )func generateDataset() []*message.MyMessage {var dataset []*message.MyMessagefor i : 0; i iteration; i {data : message.MyMessage{Email: johndoeexample.com,Name: John Doe,Id: int32(i),}dataset append(dataset, data)}return dataset }func BenchmarkProtobufSerialisation(b *testing.B) {dataset : generateDataset()b.ResetTimer()for n : 0; n b.N; n {for _, data : range dataset {_, err : proto.Marshal(data)if err ! nil {log.Fatal(err)}}} }func BenchmarkJSONSerialization(b *testing.B) {dataset : generateDataset()b.ResetTimer()for n : 0; n b.N; n {for _, data : range dataset {_, err : json.Marshal(data)if err ! nil {log.Fatal(err)}}} } func main() {// Run the benchmark teststesting.Benchmark(BenchmarkProtobufSerialisation)testing.Benchmark(BenchmarkJSONSerialization) }根据基准测试结果如下所示很明显就速度而言Protocol BuffersProtobuf的序列化性能优于 JSON。与 JSON 的序列化基准测试相比Protobuf 的序列化基准测试完成时间明显较短。 内存性能比较JSON vs. Protocol Buffers 在 Golang 中实现一个基准测试比较使用 Protocol Buffers 和 JSON 处理大型数据集时的内存使用情况。 package mainimport (encoding/jsongithub.com/golang/protobuf/protogo-protobuf/model/messagelogruntimeruntime/debugtesting )const (iteration 100000000 //Number of iterations for the benchmark test )func generateDataset() []*message.MyMessage {var dataset []*message.MyMessagefor i : 0; i iteration; i {data : message.MyMessage{Email: johndoeexample.com,Name: John Doe,Id: int32(i),}dataset append(dataset, data)}return dataset }func BenchmarkProtobufSerialisation(b *testing.B) {dataset : generateDataset()b.ResetTimer()for n : 0; n b.N; n {for _, data : range dataset {_, err : proto.Marshal(data)if err ! nil {log.Fatal(err)}}}measureMemoryUsage(b) }func BenchmarkJSONSerialization(b *testing.B) {dataset : generateDataset()b.ResetTimer()for n : 0; n b.N; n {for _, data : range dataset {_, err : json.Marshal(data)if err ! nil {log.Fatal(err)}}}measureMemoryUsage(b)} func measureMemoryUsage(b *testing.B) {debug.FreeOSMemory()var mem runtime.MemStatsruntime.GC()runtime.ReadMemStats(mem)b.ReportMetric(float64(mem.Alloc)/1024/1024, Memory_MB) }func main() {// Run the benchmark teststesting.Benchmark(BenchmarkProtobufSerialisation)testing.Benchmark(BenchmarkJSONSerialization)}尽管差异很小但基准测试结果表明与 Protobuf 序列化相比JSON 序列化使用了更多的内存。平均而言JSON 序列化消耗了约 0.2052 MB 的内存而 Protobuf 序列化仅使用了约 0.2042 MB。尽管差异很小但很明显 Protobuf 在内存使用方面更加高效。这意味着 Protobuf 的紧凑二进制格式有助于节省内存使其成为处理大型数据集和提高性能的良好选择。 结论 现在是总结的时候了 与在 Golang 中的 JSON 序列化相比Protocol Buffersprotobuf展现出了更优越的性能和内存效率。借助其紧凑的二进制格式和高效的序列化机制protobuf 提供了更小的消息大小、提升了网络效率并减少了带宽使用。此外其模式演进能力允许对数据模型进行无缝更新。虽然 JSON 有其优势但在需要高速和高内存效率的数据序列化场景中protobuf 出类拔萃实现了优化的数据传输和改善的系统性能。
http://www.zqtcl.cn/news/431913/

相关文章:

  • 公司没有销售网站怎么做业务怎么做微信推送 网站
  • 商城网站模版郴州网页定制
  • 电子商务网站建设步骤海外广告投放渠道
  • 网站用花生壳nas做存储十堰市网站建设
  • 用html5做手机网站抖音平台建站工具
  • 在线课程网站开发的研究意义网站开发需要哪些知识
  • 深圳网站优化怎么做手工艺品外贸出口公司网站建设方案
  • 从网站优化之角度出发做网站策划wordpress邀请码插件
  • 大学营销型网站建设实训课程o2o的四种营销模式
  • 咋做网站代码背景图宁远网站建设
  • 有哪些可以做网站的企业网站想换个风格怎么做
  • 怎么在百度搜索自己的网站在电脑上建设个人网站
  • wordpress网站菜单固定电商未来发展趋势前景
  • 五合一网站建设费用python 做网站 用哪个框架好
  • 波莱网站开发动态域名可以做网站吗
  • 网站建设 赣icp 南昌面馆装修设计
  • 福田附近公司做网站建设多少钱网站建设文献综述范文
  • 镇江网站建设设计建设银行投诉网站首页
  • 石家庄个人做网站广州全网络营销
  • html5网站建设加盟wordpress 4.8.6
  • 携程网站建设的基本特点哈尔滨做平台网站平台公司
  • 网站建设入门解读国模 wordpress
  • 网站购物车js代码怎么做制作app的软件有哪些
  • 36氪网站用什么程序做的互联网门户网站建设
  • 视频聚合网站怎么做不侵权wordpress 管理员插件
  • 传媒网站后台免费模板网站建设的进度计划
  • 如何做网站排名合肥全网优化
  • 网站建设招聘信息官网 wordpress
  • 城阳网站开发公司网页制作与设计在哪搜题
  • 做网站算运营吗grace wordpress