商务服务
jsoncpp 执行效率优化,非常规极限优化,适合linux下, 效率几乎提高50%以上
2025-01-03 02:36

这是2年多前, 一个游戏服务器项目要上线了,协议消息处理和数据存放都基本用json的,用的是jsoncpp开源库


主要逻辑处理部分是单线程处理,所以玩家一多cpu就吃不消了, 要优化


用gprof等工具找啊找研究发现是 主要json部分引起的一些内存开销占用cpu资源过多。(还有一些智能指针,按下不表


找了很多方法优化jsoncpp

1.比如 http://www.2cto.com/kf/201211/172375.html

只优化了一些。


2.另外, Json::Value对象有个 swap接口,所有的 赋值操作能改 swap的都用swap(因为直接 = 赋值,会做一次对象拷贝

3. 然后 数据嵌套的 基本不用append , 都用  Json::Value &one = jv_test[jv_test.size()];  先取出来再赋值,这样就省了 append时的一次拷贝

4.StyledWriter尽量都变成 FastWriter的格式化

但改了好多代码,只是稍稍提高了点效率

5. 继续修改jsoncpp源码 把注释的处理代码去掉,好像用处也不大。


后来仔细看了一下jsoncpp代码, 发现 特别是writer里面, 有个字符串document_ 一直再 += , 拼接字符串

原先代码 没用用一个统一的writer格式化, 很多都是用toStyledString()



std::string Value::toStyledString() const {
  //StyledWriter writer;
  FastWriter writer;
  return writer.write(*this);
}



可想而知 这个document_ 这个字符串容器在 拼接字符串要分配多少次内存哈,不可想象。

如果改代码,量太大

就直接改底层的

一、writer.h里 注掉

 //std::string document_;

二、json_writer.h里改一下代码   

使用一个 线程级的 全局静态变量 替换 document_; 

 


整体效率一下提高了50% - -

是保证多线程下没有问题。 


reader也可以优化看看。


这个优化如果有需要可以拿去试试。   个人觉得全局 统一用一个writer来输出也不错(不过要注意多线程的问题)。

    以上就是本篇文章【jsoncpp 执行效率优化,非常规极限优化,适合linux下, 效率几乎提高50%以上】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/14993.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
10月手机发布汇总:华为Mate 20、小米滑盖引关注滑盖手机「10月手机发布汇总:华为Mate 20、小米滑盖引关注」
  对于手机厂商们来说,新品发布会不和苹果撞车、甚至直接避开9月份都算是明智的主意。所以,在iPhone XS“风暴”减弱后,安卓
1500左右轻薄手感的安卓手机推荐1500左右的手机「1500左右轻薄手感的安卓手机推荐」
在1500左右的预算如果是想要选择轻薄的手机的话,建议可以考虑一下真我10Pro+和小米civi1S这两款手机,这两款手机在轻薄手感上面
过年无忧 | 一键get这些春节话术!
一键Get这些春节话术~过年无忧新年快乐春节将至,年味渐浓在这温馨又热闹的节日氛围里我们既能品尝各式各样的美味佳肴沉浸于味
2025在新加坡生活的我们将迎来“至暗时刻”:房租飙涨、每个月入不敷出…
聚焦新加坡真是开年暴击!2025年刚开始,还没过新年呢,万事通就出了一身冷汗:今年又是一个物价涨涨涨的年份。在网上一搜“新加
太抽象!太抽象!2024年游戏行业简直太抽象!
年末,DataEye研究院今天整点活,轻松一波。——用数据、新闻盘点2024年国内游戏业有多抽象。回首2024年有产品研发8年烧了数亿,
TikTok会如何收场
TikTok的命运再次悬而不决。在美国下架12小时又恢复运营之后,1月20日,美国总统特朗普签署行政命令,要求TikTok「不卖就禁」法
今天上午10:00,成绩发布!
早安,东台!‍今天是2025年1月22日‍星期三(农历腊月廿三)大美东台,活力满满进取创新、奋斗拼搏最近有哪些新动态?和小东一
农村土地托管服务的理论基础
中国产品流通经纪人协会供销合作行业标准《农产品食品供应商信用评价规范》参编单位征集函中国农产品流通经纪人协会供销合作行业
头上三尺有神明,每个人头顶都有一颗星,当星光消失人也就消失!
每当夜晚降临后,我们抬头看天空,会看到满天的星星,自古以来,人们从没有停止过对星象的观测和研究。古人观测星象,一则是为了
运营师抖音代运营
运营师抖音代运营:掌握流行短视频潮流的神奇职业短视频平台已经成为人们娱乐、学习和社交的重要方式。在众多的短视频平台中,抖