jsonCpp 库很慢!!有什么快的没有bug的库代替?

bandaoyu 2019-03-20 05:00:24

查询数据库返回记录 9400多条。用jsoncpp生成json,用的FastWriter writer; 来生成
总共耗时27s!
(数据大小:生成的json总长1.15M)

C++写的库怎么那么慢呢?不科学呀,怪。 记得用java 解析10万条的数据也既差不多这个秒数。

有什么更快的库 或者如何修改jsoncpp提高效率?

返回json格式:

"Result":" s ",
“Message”:“****”,
"Data":{
" RecordNum":9412,
" Records":[
{“DCo”:"1",“Ec”:"056","Po":"K0","Us":"997","Ua":"ligang","Re":"1"},
{“DCo”:"1",“Ec”:"056","Po":"K1","Us":"997","Ua":"ligang","Re":"1"},
{“DCo”:"1",“Ec”:"056","Po":"K2","Us":"997","Ua":"ligang","Re":"0"}
……
]
}

...全文
1439 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
starytx 2019-08-02
  • 打赏
  • 举报
回复
release的库测试了一下,加了10000条类似数据到数组中,生成json串不到0.18秒
clever101 2019-08-02
  • 打赏
  • 举报
回复
推荐使用RapidJSON,用这个你都不需要编译库。
bandaoyu 2019-04-19
  • 打赏
  • 举报
回复
https://blog.csdn.net/sdfhncfw/article/details/83871831
  • 打赏
  • 举报
回复
Qt QJson
Method.Jiao 2019-04-09
  • 打赏
  • 举报
回复
用rapidjson吧,我目前项目一直在用这个,没有遇到bug并且这个库只有头文件配置简单。速度相较其他库来说有优势
一见 2019-04-02
  • 打赏
  • 举报
回复
引用 35 楼 bandaoyu 的回复:
引用 33 楼 一见 的回复:
支持shema ?
是的,支持schema,使用示例可参考: https://blog.csdn.net/Aquester/article/details/86681283#_Toc19963
bandaoyu 2019-04-02
  • 打赏
  • 举报
回复
引用 33 楼 一见 的回复:
支持shema ?
一见 2019-04-02
  • 打赏
  • 举报
回复
引用 33 楼 一见 的回复:
用大名鼎鼎的rapidjson库吧: https://blog.csdn.net/Aquester/article/details/86681283 支持中文,还支持schema。
本身纯头文件(不包含测试代码),使用简单。
一见 2019-04-02
  • 打赏
  • 举报
回复
用大名鼎鼎的rapidjson库吧: https://blog.csdn.net/Aquester/article/details/86681283 支持中文,还支持schema。
bandaoyu 2019-03-26
  • 打赏
  • 举报
回复
引用 16 楼 bravery36 的回复:
;
你的数据量还是要比我的小一些,你试试这个,每一条记录都和下面的一样长:

{"RecordNum":2770,"Records":[{"DeviceCode":"d300901880000000000","EcType":"T13010001","PointNumber":"1-1","Result":" 1","UserID":"1","UserName":"郭晶敏"},


因为jsoncpp里面有个string 不断拼接,长度超过string的预开辟长度时会有重新分配内存的过程,我们都知道C++ string每次都是预开辟2倍的内存,所以数据量越长重新开辟长度的次数越多,而数据量越多每次开辟内存和数据拷贝所花时常就越长。

这就是为什么数据越长,速度越慢的原因,而且感觉像是指数增长的。你试试看
bandaoyu 2019-03-22
  • 打赏
  • 举报
回复
引用 19 楼 WNs_ACE 的回复:
引用 13 楼 bandaoyu 的回复:
[quote=引用 10 楼 WNs_ACE 的回复:]
cpprestsdk 是干嘛用的

cpprestsdk是微软专门做出来的开源c++的http类库,这个类库里面有json的解析和http的请求等方法[/quote]嗯 不错 ,现在还不需要HTTP 以后需要的时候就想到这个 非常感谢呀
bandaoyu 2019-03-22
  • 打赏
  • 举报
回复
引用 25 楼 bravery36 的回复:
[quote=引用 20 楼 bandaoyu 的回复:]
[quote=引用 17 楼 bravery36 的回复:]
.
哦 我想到一点了 我是直接用源码加到工程的 而且是debug底下跑的 估计是这个原因?

将json编程lib之后再用会更快吧[/quote]
我也是debug, 编译成lib不会更快.建议你建一个简单的demo测试一下问题在哪.[/quote]再测就是 到jsoncpp里面去看了,说白了还是库哇
只陪她闹❤ 2019-03-22
  • 打赏
  • 举报
回复
百度搜索一下,度娘,😄
bravery36 2019-03-22
  • 打赏
  • 举报
回复
引用 20 楼 bandaoyu 的回复:
[quote=引用 17 楼 bravery36 的回复:]
.
哦 我想到一点了 我是直接用源码加到工程的 而且是debug底下跑的 估计是这个原因?

将json编程lib之后再用会更快吧[/quote]
我也是debug, 编译成lib不会更快.建议你建一个简单的demo测试一下问题在哪.
還是 2019-03-22
  • 打赏
  • 举报
回复
应该没这么慢吧,Json_writer.write调用了几次?只调用一次,不会那么慢
这不是鸭头 2019-03-22
  • 打赏
  • 举报
回复
RapidJson 用着简单
bandaoyu 2019-03-22
  • 打赏
  • 举报
回复
引用 30 楼 zybzlh 的回复:
这样子, 我看了下toStyledString也是用writer, 我也不知道为啥了.估计是jsoncpp实现有问题.
你的多少秒?
zybzlh 2019-03-22
  • 打赏
  • 举报
回复
这样子, 我看了下toStyledString也是用writer, 我也不知道为啥了.估计是jsoncpp实现有问题.
hj520xx 2019-03-22
  • 打赏
  • 举报
回复
https://company.dajie.com/nb/vsite/IBMdasai/shareindex.html?zpid=34
ztenv 版主 2019-03-21
  • 打赏
  • 举报
回复
试试simdjson,号称目前世界上最快的json库
加载更多回复(19)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧