首页 > 其他 > 详细

测试Protobuffer的定义格式对其时间和空间的影响

时间:2017-03-03 18:52:54      阅读:250      评论:0      收藏:0      [点我收藏+]

  以下测量Protobuffer格式的A命令转换为std::string的的字节个数:

  • 添加图片资源

  a)AddLayer:108
  b)AddSource:209
  c)MoveLayer:44
  d)DeleteLayer:48

  • 清屏:36

  但是实际应用时是以B命令接收,然后转换为C命令,这个C命令再拆分为A命令,整体下来接收到的字节较多,数据如下:

  • 添加图片资源

  a)AddLayer+AddSource:410
  b)MoveLayer:150
  c)DeleteLayer:153

  • 清屏:123

  由以上两者的对比得出结论:命令的两次嵌套带来了将近100个字节的开销。显然,嵌套的层数越少,转换出字符串的字节数越小。另外,搜索资料可知,Protobuffer在包含repeated元素时,时间开销会较多,因为涉及到repeated元素个数到达一定值时的内存重新分配。所以,从时间和空间的角度来说,对Protobuffer的定义有两个建议,一是尽量少的嵌套,以减少空间开销(个人的理解,Protobuffer的定义应该扁平化);二是repeated元素不应过多,以减少时间开销。

 


参考资料:
http://blog.csdn.net/yang3wei/article/details/46360099

测试Protobuffer的定义格式对其时间和空间的影响

原文:http://www.cnblogs.com/jiayayao/p/6497969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!