前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太!多! 由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将讲解为什么Protocol Buffer的性能如此的好: a. 序列化速度 & 反序列化速度快 b. 数据压缩效果好,即序列化后的数据量体积小 阅读本文前请先…
诗人般的机器学习,ML工作原理大揭秘 https://mp.weixin.qq.com/s/7N96aPAM_M6t0rV0yMLKbg 选自arXiv 作者:Cassie Kozyrkov 机器之心编译 机器之心授权(禁止二次转载) 很多人会认为机器学习相比于传统编程是一种编写学习过程的方法,它性能非常神奇且高大上.但是在本文中,谷歌首席决策工程师 Cassie Kozyrkov 小姐姐以非常形象的比喻介绍了机器学习核心原理. 机器学习使用数据中的模式来标记事物.听起来好像很神奇,实际上核心概…
1. 使用Varint编码数据,越小的数据,用少的字节编码.如小于128的用一个字节编码,大于128的用多个字节编码.同时,每个字节最高为1或者0表示是否为数字的一部分. 2. 由于负数的补码表示很大,使用了ZigZag编码,转换成正数,使用Varint编码 3. 使用T-V,没有使用T-L-V, 即Tag- Length -Value,少了length字段 4. Tag表示,标识号 + wire. // Tag 的具体表达式如下 Tag = (field_number << 3) | wir…
前言 相信大家在懵懂无知的时候都有被盗号的经历吧,QQ胡乱的加好友,突然有个好友传了个文件给你,打开以后发现QQ竟然显示强制下线,然后再也上不去了QAQ,很明显,QQ号被人盗了.最近也是很多小伙伴私信我,也看了一些人发空间说QQ号被盗了啥的,以及我自己收到的一些诈骗请求.网上针对防骗这块的文章几乎没有,为了不让更多的人受害,下面我将会以最真实朴素的语言介绍最常见的一种盗号诈骗方式,浅析一下这个盗号原理的全过程~~~希望大家不要再上当受骗啦~! 正文 下面我给大家介绍一种最常见的QQ诈骗方式. 这…
简介 在Android异步处理之AsyncTaskLoader简单使用中我简单的介绍了一下AsyncTaskLoader的基本用法和使用场景,对AsyncTaskLoader还不是很熟悉的小伙伴可以先简单学习一下. 相信读过Android异步处理之AsyncTaskLoader简单使用后,大家对烤面包机,面包师,面包房的例子还是有点印象的,那么接下来趁热打铁,继续沿用这个买面包的例子讲述一下AsyncTaskLoader的设计原理. 设计原理 在讲设计原理之前,先简单了解一下AsyncTaskL…
一.背景 运营者能够对用户行为进行分析的前提,是对大量数据的掌握.在以往,这个数据通常是由开发者在控件点击.页面等事件中,一行行地编写埋点代码来完成数据收集的.然而传统的操作模式每当升级改版时,开发和测试人员就需要重复不断对代码进行更新,整个流程耗时长,无法满足业务的需求. 为帮助开发者解决这一痛点,个推应用统计"个数"推出"可视化埋点"这一技术来更高效地实现这个这一过程."个数"的可视化埋点灵活.方便,开发者不需对数据追踪点添加任何代码,只需要…
Protocol buffer是Google出品的一种轻便高效的结构化数据存储格式,可对结构化数据进行序列化,并具有语言无关.平台无关等特点,在通信协议和数据存储等领域已经得到广泛的应用.目前其已经提供 C/C++.Java.Python 等语言的 API. 一.Protocol buffer和XML 在数据通信传输时,一般需要将结构化的数据序列化成流进行传送,接收方再反序列化为原始格式数据进行处理.在Web通信领域,XML应用算是最通用的了.在时间性能上,虽然XML的序列化开销还可以,但是反序…
了解Protocol Buffer 首先要知道什么是Protocol Buffer,在编程过程中,当涉及数据交换时,我们往往需要将对象进行序列化然后再传输.常见的序列化的格式有JSON,XML等,这些格式虽然可读性较好,但占用的空间大小并不是最优的.基于此,Google创建了一种名叫Protocol Buffer的序列化格式,它与JSON,XML相比可读性较差,但占用的空间也会更小,在一些对于速度要求比较高的场景中较为常用. Java序列化Protocol Buffer框架-ProtoStuff…
介绍下怎么反序列化GoogleBuffer数据.并在最后提供本系列文章中所用到的代码整理供下载. 上一篇文章介绍了如何将数据序列化到了addressbook.data中.那么对于接受方而言该怎么解析出原本的数据呢. 相同,protoc编译器生成的代码文件里提供了反序列化的接口,基本上和序列化的函数相应的,例如以下图所看到的:               上文中採用了SerializeToOstream.SerializeToString.SerializeToCodedStream来序列化数据的…
这里记录一下学习与使用Protocol Buffer的笔记,优点缺点如何使用这里不再叙述,重点关注与理解Protocol Buffers的工作原理,其大概实现. 我们经常使用Protocol Buffer进行序列化与反序列化.理解Protocol Buffer的工作原理,就要理解序列化与反序列化. 序列化:将数据结构或对象转换为二进制串的过程: 反序列化:序列化的逆过程: 如何实现呢?核心有两点:编码 + 存储.数据在计算机间通过网络进行传输时,传输的是比特流,只有0和1,并没有你所定义的各种类…