百度如何提交网站做网站建设推荐

news/2025/10/1 19:48:47/文章来源:
百度如何提交网站,做网站建设推荐,素材网站设计模板,seo关键词排名注册价格概述 一种开源跨平台的序列化结构化数据的协议。可用于存储数据或在网络上进行数据通信。它提供了用于描述数据结构的接口描述语言#xff08;IDL#xff09;#xff0c;也提供了根据 IDL 产生代码的程序工具。Protocol Buffers的设计目标是简单和性能#xff0c;所以与 XM…概述 一种开源跨平台的序列化结构化数据的协议。可用于存储数据或在网络上进行数据通信。它提供了用于描述数据结构的接口描述语言IDL也提供了根据 IDL 产生代码的程序工具。Protocol Buffers的设计目标是简单和性能所以与 XML 相比更小且更快。在 Google它被当作一个 RPC 系统的基础。 设计过程 Tag 表示 对于一条 person 信息使用 JSON 可表示为{ “age”: 30, “name”: “zhangsan”, “height”: 175.33, “weight”: 140 }。显然中间有很多冗余的字符比如 { 等为把数据变小一点我们直接将其表示为30|zhangsan|175.33|140即通过直接将 value 使用分隔符 | 拼在一起舍去了不必要的冗余字符每条记录都要包含各个字段的字段名很浪费存储空间这样大幅度地压缩了空间。然后接收端按照如下顺序解析 key-value 之间的关系。 字段1age字段2name字段3height字段4weight30zhangsan175.33140 假设 height 这个字段为 null我们其实是不必要传递这个字段的这个时候我们需要传递的数据就为30|zhangsan|140。但是在接收端解析数据并按照顺序进行字段匹配的时候就会出问题。 字段1age字段2name字段3height字段4weight30zhangsan140 显然已经乱套了为了保证能够正确的配对我们可以使用 tag 技术即每个字段我们都用tag|value 的方式来存储的在 tag 当中记录两种信息 value 对应的字段的编号value 的数据类型 因为 tag 中有字段编号信息所以即使没有传递 height 字段的 value 值根据编号也能正确的配对。 使用 tag 也会增加额外的空间这跟 JSON 的 key/value 有什么区别吗 JSON 中的 key 是字符串每个字符就会占据一个字节像 name 这个 key 就会占据 4 个字节但在 PB 中tag 使用二进制进行存储一般只会占据 1 个字节它的代码为 static int makeTag(final int fieldNumber, final int wireType) {return (fieldNumber 3) | wireType; }fieldNumber 就是字段编号比如 fieldNumber 为 1 表示age为 2 表示 name 等wireType 表示字段的数据类型以此来计算 value 占用字节的大小。 注在 protobuf 当中wireType可以支持的字段类型如下 编码优化 我们知道整数在计算机当中占 4 个字节但绝大部分的整数比如价格库存等都是比较小的整数实际用不了 4 个字节比如 127 在计算机中的二进制为 00000000 00000000 00000000 01111111 完全可以用最后 1 个字节来进行存储protobuf 当中定义了 Varint 这种数据类型可以用不同的长度来存储整数进一步压缩数据的存储空间。 另外在计算机中负数使用补码表示比如 -1它的二进制表示方式为 11111111 11111111 11111111 11111111 显然就无法用 1 个字节来表示了这个时候就可以使用 zigzag 算法对负数进行变换最终可用 2 个字节来表示 -1。 Varints 《深入理解 Kafka核心设计与实践原理》 Varints 是使用一个或多个字节来序列化整数的一种方法。数值越小其占用的字节数就越少。Varints 中的每个字节都有一个位于最高位的 msb 位most significant bit除最后一个字节外其余 msb 位都设置为 1最后一个字节的 msb 位为 0。这个 msb 位表示其后的字节是否和当前字节一起来表示同一个整数。 除 msb 位外剩余的 7 位用于存储数据本身这种表示型又称为 Base 128。通常而言一个字节 8 位可以表示 256 个值所以称为 Base 256而这里只能用 7 位表示2 的 7 次方即 128。Varints 中采用的是小端字节序即最小的字节放在最前面。 举个例子比如数字 1它只占一个字节所以 msb 位为 0 0000 0001 再举一个复杂点得例子比如数字 300 1010 1100 0000 0010 300 得二进制表示原本为 0000 0001 0010 1100 256 32 8 4 300。那么为什么 300 的变长表示为上面这种形式呢 首先去掉每个字节的 msb 位表示为 1010 1100 0000 0010 - 010 1100 000 0010varints 表示去掉 msb 的结果 如前所述varints 使用小端字节序的布局方式所以这里两个字节的位置需要翻转再补上最高位 010 1100 000 0010 - 000 0010 010 1100翻转 - 0000 0010 0010 1100补上每字节的最高位 0 Varints 可以用来表示 int32、int64、uint32、uint64、sint32、sint64、bool、enum 等类型。在实际使用过程中如果当前字段可以表示为负数那么对 int32/int64 和 sint32/sint64 而言它们在进行编码时存在较大的区别。比如使用 int64 表示一个负数那么哪怕是 -1-1 正常需要 8 * 8 64 位来表示而 varint 表示法每个字节的最高位需要作为 msb相当于每个字节只有 7 位所以至少需要 10 字节10 * 7 64 9 * 7来表示其编码后的长度始终为 10 个字节就如同对待一个很大的无符号长整型数一样。为了使编码更加高效Varints 使用了 ZigZag 的编码方式。 ZigZag 编码以一种锯齿形zig-zags的方式来回穿梭正负整数将带符号整数映射为无符号整数这样可以使绝对值较小的负数仍然享有较小的 Varints 编码值比如 -1 编码为 11 编码为 2-2 编码为 3如表5-1所示。 对应的公式为 (n 1) ^ (n 31) sin32、(n 1) ^ (n 63)sin64 以 -1 为例 其二进制表现形式为 1111 1111 1111 1111 1111 1111 1111 1111 补码 。 ( n 1 ) 1111 1111 1111 1111 1111 1111 1111 1110 (n 31) 1111 1111 1111 1111 1111 1111 1111 1111 (n 1) ^ (n 31 ) 1 最终 -1 的 Varints 编码为 0000 0001 这样原本用 4 个字节表示的 -1 现在可以用 1 个字节来表示了。 前面说过 Varints 中的一个字节中只有 7 位是有效数值位 即 只能表示 128 个数值 ,转变成绝对值之后其实质上只能表示 64 个数值 。 比如对消息体长度而言其值肯定是大于等于 0 的正整数那么一个字节长度的 Varints 最大只能表示 64 。 65 的二进制数表示为 0100 0001 经过 ZigZag 处理后为 1000 00 1 0 A 0000 0000 1000 0010 每个字节的低 7 位是有效数值位所以 1000 0010 进一步转变为 000 0001 000 0010 而 Varints 使用小端字节序所以需要翻转一下位置 000 0010 000 0001 设置非最后一个字节的 msb 位为 1 最后一个字节的 msb 位为 0最终有 1000 0010 0000 0001 所以最终 65 表示为 1000 0010 0000 0001 而 64 却表示为 0 100 0000 。 解码 因为每个字段都用 tag|value 来表示在 tag 中包含了 value 的数据类型信息所以可以直接从 tag 中得知 value 的字节大小从而快速地解析出数据。例如 value 是 bool 型我们就知道其占了 1 个字节程序从 tag 后面直接读一个字节就可以解析出 value而 JSON 则需要进行字符串解析才可以办到。 如果 value 是字符串类型的我们无法从 tag 当中得知 value 的实际长度就不得不做字符串匹配操作要知道字符串匹配是非常耗时的。 为了能够快速解析字符串类型的数据protobuf 在存储的时候对其做了特殊的处理即其存储被分做三部分tag|length|value其中的 leg 记录了字符串的长度同样使用了 varint 来存储然后程序从 leg 后截取 leg 个字节的数据作为 value。 协议比较 Avro、ProtoBuf、Thrift 的模式演进之法【翻译】 如果有一些数据想存储在文件中或者通过网络发送出去对数据的处理主要分为如下几个阶段 使用编程语言内置的序列化机制如 Java Serialization、 Ruby Marshal 或 Python pickle或者甚至发明自己的格式。意识到被锁定在一种编程语言中是很糟糕的所以转向使用一种广泛支持的、与语言无关的格式比如 JSON (或者 XML)。觉得 JSON 过于冗长解析速度太慢。也会恼火它竟然无法区分整数和浮点。所以出现了一种类似于 JSON 的格式但它是二进制的。比如 MessagePack、 BSON、Binary JSON 等。当使用不一致的协议类型进行通信时总会出现对象字段匹配失效的问题。此外类似于 JSON 的二进制文件并没有那么紧凑因为它们仍会一遍又一遍地存储字段名。如果有一个协议可以避免存储对象的字段名则可以节省更多字节。可用选项通常是 Thrift, Protocol Buffers以下简称 ProtoBuf或 Avro。这三种序列化协议都是基于模式设计的为 Java 开发人员提供了高效的、跨语言数据序列化和代码生成能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网上商城网站建设体会青海百度关键词seo

虚拟现实(VR)技术的出现为我们提供了一种全新的在线教学方式。由广州华锐视点开发的VR线上教学资源平台,作为一个综合性的学习工具,正在教育领域迅速发展,并被越来越多的教育机构和学生所接受。那么,VR线上…

做网站需要几个服务器wordpress网站域名服务器

技术背景 随着智慧数字人、AI数字人的兴起,越来越多的公司着手构建​全息、真实感数字角色等技术合成的数字仿真人虚拟形象,通过“虚拟形象语音交互(T-T-S、ASR)自然语言理解(NLU)深度学习”,构…

2025母线槽源头厂家 TOP 工厂权威榜单揭晓,密集型、封闭、浇筑、耐火、防火、防水、插接式母线槽公司推荐!

引言母线槽作为电力系统中重要的输电设备,其质量与性能直接关系到电力传输的安全与稳定。当前,母线槽市场规模不断扩大,但行业内也存在诸多问题。部分源头厂家缺乏规范的生产标准,为降低成本使用劣质材料,导致产品…

2025 年衬氟鹤管源头厂家 TOP 企业品牌推荐排行榜,天然气 / 低温 / LNG / 撬装 / 底装 / 火车 / 装卸车 / 上装 / 衬氟 / 下装鹤管公司推荐这 10 家

在化工、医药等行业的液体储运与装卸环节,衬氟鹤管扮演着至关重要的角色。其因具备出色的耐腐蚀性能,成为输送腐蚀性液体介质的关键设备。然而,当前市场上衬氟鹤管产品质量参差不齐,部分厂家为追求成本效益,在材料…

2025 铜覆钢圆钢生产商厂家 TOP 企业品牌推荐榜单,铜覆钢接地极 / 棒 / 圆钢 / 扁钢 / 圆线 / 绞线 / 角钢 / 扁铁 / 管公司推荐这 10 家

引言在当今的电力、石油化工、通讯等众多领域,铜覆钢圆钢作为重要的接地材料,其质量与性能直接关系到相关工程的安全与稳定。然而,当前铜覆钢圆钢行业却面临着诸多问题。市场上产品质量参差不齐,部分生产商为追求利…

2025 年喷雾干燥机厂家 TOP 企业品牌推荐排行榜,无锡 / 常州喷雾干燥机 / 离心式 / 压力式 / 气流 / 造粒 / 有机溶剂 / 闭路循环 / 闭式循环 / 实验喷雾干燥机公司推荐!

引言当前喷雾干燥机行业在发展过程中面临诸多问题,一方面,随着精密陶瓷、半导体材料、新能源粉体等高端材料制造领域需求不断提升,对喷雾干燥机的精度、稳定性以及能耗等方面提出了更高要求,然而部分厂家因技术积累…

医院网站建设台账郑州厉害的seo顾问公司

1、99 公益日活动加速任务已全部完成适配,空间公益说说和评论并分享小世界内容任务在已有的功能上进行挂机, 其中【发小世界】功能暂时更名为【公益小世界】。 2、上线新功能【公益答题】用于完成参加 Qbox 公益答题任务,等级套装有任意一项…

2025 年工业吊扇最新推荐权威排行榜:TOP5 优质品牌全面解析,助力企业高效选购

在工业生产场景中,工业吊扇是调节大型空间通风、改善作业环境的核心设备,广泛应用于厂房、仓库、物流中心等场所。但当前市场品牌繁杂,部分产品存在能耗偏高、运行稳定性差、安全防护不到位等问题,且不同品牌在技术…

实用指南:HTTPS协议原理

实用指南:HTTPS协议原理2025-10-01 19:36 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

2025 同步带源头厂家 TOP 排行榜单公示,碳纤维 / 高扭矩碳纤维 / 高强力 / 保力强 / 摩托车 / 自行车同步带公司推荐

在工业传动领域,同步带作为连接动力与设备的关键部件,其品质直接关系到生产效率与设备寿命。当前市场上,源头厂家数量众多,但产品质量却存在明显差异。部分厂家为追求成本优势,在原材料选用和生产工艺上偷工减料,…

20250928 组合计数

这篇博客只会写一些题解,基础内容和另外一些题,见:容斥基础 反演基础P4492 [HAOI2018] 苹果树 Hint:相当于求所有形态二叉树的路径和,考虑一条边 \((u,fa_u)\) 的贡献. 记子树 \(u\) 的大小为 \(sz_u\),把所有路…

哈希问题的一类技巧

浅谈处理哈希问题的一类方法-线段树维护哈希 前言 一个初三蒟蒻粗浅的认知和总结,dalao不喜勿喷。分享的题也大都很水,仅是代表浅层理解。 简介/概括 哈希是一种常用的算法。我们在oi中使用哈希的主要目的是将难以直…

CVPR-2025 | 具身导航指令高效生成!MAPInstructor:基于场景图的导航指令生成Prompt调整策略 - 详解

CVPR-2025 | 具身导航指令高效生成!MAPInstructor:基于场景图的导航指令生成Prompt调整策略 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bloc…

技术支持 哈尔滨网站建设个人博客图片

一、 分布式远程服务(Remote Service) 基于Redis的Java分布式远程服务,可以用来通过共享接口执行存在于另一个Redisson实例里的对象方法。换句话说就是通过Redis实现了Java的远程过程调用(RPC)。分布式远程服务基于可…

上海做网站的公司排名今天广西紧急通知最新

CDN, 也叫内容分发网络(Content Delivery Network),是一种构建在分布式网络基础上的网络技术,旨在提高页面的访问速度和用户体验。CDN通过在全球各地部署服务器节点,并将网站的静态和动态内容复制到这些节点上&#xf…

AtCoder Grand Contest 015 - E - Mr.Aoki Incubator

AtCoder Grand Contest 015 - E - Mr.Aoki Incubator 思路解析 设 $ f(S) $ 为初始感染集合为 $ S $。 哪些人能够被最终感染呢? 我们考虑将每个人视作一个点,感染他的人视作它的父亲。再观察 $ f({i}) $ 是什么,将…

9.30 CSP-S模拟25 改题记录

嗯......HZOJ 写在前面 (其实最讨厌whk和OI转换的时候了,尤其是那种不能完全割舍一方的转换) 嗯对大概就是不想改T4就来写题解了。补课后第一场,人终于都回来了,虽然依旧挂如分,但是竟然能够rk3(?)。感觉这场…

永州微网站建设wordpress文章链接带问号

不错的资料: LLVMClang编译器链接器--保值【进阶之路二】 - 掘金 —————————————————————————————————————— 下载 llvm-cookbook example: $ git clone https://github.com/elongbug/llvm-cookbook.git 也可以参照llvm-pr…

vcenter6.7u3/vcsa6.7u3无DNS安装部署(new)

vcenter6.7u3/vcsa6.7u3无DNS安装部署(new)vcsa6.7u3无DNS安装 vcsa6.7u3w下 实测 VMware-VCSA-all-6.7.0-24337536.iso 测试通过版本发布时间内部编号名称down1down26.7U3w 2024-10-28 24337536 VMware-VCSA-all-6…

深入解析:Vue 3 项目开发必用第三方组件与插件全攻略

深入解析:Vue 3 项目开发必用第三方组件与插件全攻略2025-10-01 19:19 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; di…