Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
tom510230 committed Jun 3, 2018
1 parent b3fd3ee commit 9104513
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion Reports/#22-2018.06.04.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,24 @@ Apple 悄悄发布了针对 App Store 搜索广告的 Creative Testing 功能,

在我们通常的认知中,都认为 `dispatch_async` 非常高效不会卡顿,Peak 在实际项目中发现一个卡顿堆栈可能与 `dispatch_async` 有关, 之后利用 TSI 向 Apple 寻求 technical support,通过问答形式解释了为什么 `dispatch_async` 有时也会卡顿

### 🐢 [高效的数据压缩编码方式 Protobuf](https://github.com/halfrost/Halfrost-Field/blob/master/contents/Protocol/Protocol-buffers-encode.md)

本文通过详细的介绍,帮助读者了解Protocol buffers的最新版本proto3基本用法和主要特性,并阐述了Protocol buffers的编解码流程,是一篇很详尽的Protocol buffers入门级学习资料通过阅读本文,读者能够明白以下几点:

- Protocol Buffer 利用 varint 原理压缩数据以后,二进制数据非常紧凑,option 也算是压缩体积的一个举措所以 pb 体积更小,如果选用它作为网络数据传输,势必相同数据,消耗的网络流量更少但是并没有压缩到极限,floatdouble 浮点型都没有压缩
- Protocol Buffer 比 JSON 和 XML 少了 {}: 这些符号,体积也减少一些再加上 varint 压缩,gzip 压缩以后体积更小!
- Protocol Buffer 是 Tag - Value (Tag - Length - Value)的编码方式的实现,减少了分隔符的使用,数据存储更加紧凑
- Protocol Buffer 另外一个核心价值在于提供了一套工具,一个编译工具,自动化生成 get/set 代码简化了多语言交互的复杂度,使得编码解码工作有了生产力
- Protocol Buffer 不是自我描述的,离开了数据描述 .proto 文件,就无法理解二进制数据流这点即是优点,使数据具有一定的“加密性”,也是缺点,数据可读性极差所以 Protocol Buffer 非常适合内部服务之间 RPC 调用和传递数据
- Protocol Buffer 具有向后兼容的特性,更新数据结构以后,老版本依旧可以兼容,这也是 Protocol Buffer 诞生之初被寄予解决的问题因为编译器对不识别的新增字段会跳过不处理

扩展阅读
[iOS中使用Protocol Buffer](https://juejin.im/post/5a2fe22851882510b2755b23)
[Protobuf中set_allocated_xxx排雷](https://juejin.im/entry/5aa338416fb9a028c675516b)
[Protobuf3进阶系列](https://blog.csdn.net/hry2015/article/category/6885899)
[Protobuf应用实践之RPC框架:Google gRPC](https://juejin.im/post/5b01ec866fb9a07aca7a7289)
[随手记实践Protobuf经验分享](https://mp.weixin.qq.com/s/y0dyK47_sirCteAkbh_ebw)

## 设计

## 工具
Expand Down Expand Up @@ -104,7 +122,7 @@ macOS 平台上的 Unofficial WWDC app for macOS 这款第三方 WWDC 应用更

## 内推

可选,内推招聘
[深圳头条研发中心诚招各路iOS好手一起做取悦自己的项目](https://job.toutiao.com/2018/spring_referral/?token=alPR8WCv8nnnc5QqtsyKjw%3D%3D&key=MTY1MDMsMTg0MTQsMjA1MjAsMTk1NjEsMTU2ODksMTc0ODk%3D)

## 关注我们

Expand Down

0 comments on commit 9104513

Please sign in to comment.