在mac上配置CMake,并编译FlatBuffers

公司项目原本基础架构是用json格式来传递数据,但是这个东西有个挺严重的问题,就是需要解析,然后项目本身与服务器需要进行大量的通讯(频率很高,大概30hz吧),这个解析就非常的拖性能了,而且当前的json库,好像每次都得new对象,产生gc,然后就发现了FlatBuffers这么个玩意。
它是google员工在业余开发的一个玩意,具体去百度就好了。
它的特点呢,就是虽然数据也是2进制传输的,但是它编码过的数据,与原始数据在内存中的占用区别不大,且达到另一端以后,并不需要复杂的格式转换和解析,这就非常的适合高频率通讯的架构来使用了,不过代码里的用法有些恶心,不知道是编码质量不高,还是因为就写不成太优雅的格式的原因了。
然后这都不是重点,重点是要想使用这个东西,它的协议,需要用它自己提供的编译库来生成,然后这个东西在github上有windows的Release版,但是没有mac,但是服务器同事用的是mac呀,所以我们还需要自己编译一个mac的出来。
这里要吐槽一下,以前github上有现成生成好的Xcode工程,mmp一键就搞定了,结果现在变成了只有CMake的实现了,不是说CMake不好(它可以编译各个平台的),但是毕竟我不熟练呀,然后就说下要怎么搞。

首先去github把FlatBuffers的工程下下来,地址:
https://github.com/google/flatbuffers
然后下载CMake,地址:
https://cmake.org/download/

mac安装十分简单,就是个app,装完长这样。
这里写图片描述

这时其实已经可以使用它了,如果你想在命令行也能使用CMake的命令的话,这里可以这样操作
这里写图片描述
这里写图片描述
选择 How to install….,直接按着第二步来,就可以在app没开的情况下使用CMake命令了。
当然命令行不是今天的主角,cmake出的这个app真的是非常的好用了,对于我这种不背命令的人来说简直是福音。

这里写图片描述
具体操作非常的智能,我们选择Browse Source…设置工程的位置,FlatBuffers里有一个CMakeLists.txt文件,app可以通过它来知道怎样去构建相应的工程。
Browse Build….来设置编译的输出位置。
点击Configure,在弹出的窗口里把目标项目设为Xcode,然后我们就发现右下角的Current Generator变成了Xcode。
然后见证奇迹的时刻到了,直接点击Generate对应的Xcode工程就生成出来了,跟以前比简直是太简单了!!!以前cocos2d用cmake时,配来配去的烦死了。

这里写图片描述
我们看到生成目录下就出现了一个.xcodeproj的工程文件,直接启动它。
这里写图片描述
然后我们选择Build
这里写图片描述
可以在Debug目录下找到flatc文件了,这个就是我们需要的协议生成库了,
大功告成!

总的来说,cmake的这个app是给我惊喜最多的,人在学习,工具也在进步,学无止境呀。
向苦于解决服务器json数据解析的同学推荐一下FlatBuffers这个协议,不用解析这个特性真是个天才的想法。
但是它在包体尺寸,内存占用上就不是那么具备优势了。
对比json, FlatBuffers, protobuffer(google自己出的一种协议)。
json在调试上有优势(因为是明文传递)
protobuffer更加的中庸,内存更小,包更小,但是仍然需要解析
FlatBuffers上面几点都是弱势,但是它传递过来以后不需要解析,直接就可以序列化成类对象,所以特别的适合需要跟服务器进行频繁通讯的架构,这样可以有效的提升服务器,客户端的运行效率,节省有限的计算资源。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值