您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

更强的JsonPath兼容性和性能测试 <免费源码>

  • 时间:2022-09-06 04:23 编辑: 来源: 阅读:296
  • 扫一扫,手机访问
摘要:更强的JsonPath兼容性和性能测试 <免费源码>
更强的JsonPath兼容性和性能测试最近在其json框架snack3中增加了json PATH支持。 做好之后,我找了两个市面上比较流行的框架进行对比测试,帮助自己提高框架的性能和兼容性。 经过测试,发现snack3兼容性好,性能最好。 今晚让我们喝点酒庆祝一下!!!声明:我也是java新手。我可能会用错误的方法测试,导致不科学的结果。请留言指出。 以下测试值只对我的电脑有效(配置:Macbook pro 13 2018 i7+16G+512G) Snack3借鉴Javascript,所有变量都用var声明,Xml dom用Node设计。 下面所有的数据都用ONode表示,ONode的意思是一个节点,代表任意类型,可以转换成任意类型。 强调文档树作为中间媒介的操纵和构造能力,便于不同格式之间的相互转换。高性能Json路径查询(出色的兼容性和性能)支持序列化,反序列化本次测试使用的三个框架和版本:com . Alibaba:fast Json:1 . 2 . 29 com . jayway . Json path:Json-path:2 . 2 . 0 org . noe ar:snack 3:3 . 1 . 9三个测试数据样本:A:{code:1,msg:'Hello world' Data: {list: [1,2,3,4,5],ARY2: [{A: 2},{A: 3,B: {C:' DDD ' '预解析jsonvar obj = JSON . parse(text);long start = system . current time millis();for(int i=0,len = 1000000我& ltlen++) {//2.执行json路径JSONPath.eval(obj," $ ... ");}//3100万次的消耗时间(记录值是这个)long times = system . current time millions()-start;system . out . println(times);2.每一帧、每一个表情执行四次,记录三次后花费的时间。3.最后做一个对照表。4.测试结果:Json路径表达式数据FastJSON-PATH SNACK3 $..529 546 5392658 2633 2590225 225 225 232美元..* A(不兼容3156306,315,325data.list[1,4]A85,90,86782,798,776133,137,131data.list[1:4]A105,109,109941,899,947143,145,146data.ary2[1].b.cA60,58,58929,826,8377b.ca(不兼容2) 1105,1025,1050,173,152,155美元..b [?(@.c == 12)]B(不相容2) 5628,5739,5636580,535,532美元..c.min () B(不兼容2)(不兼容2)279,282,285$【?(@.c =~ /a+/)]C(不兼容2) 3575,3591,3813444,423,429美元..ary2 [0]。AA325,321,3192522,2551,2591310,311。(@单位为美元..ary2[0]。a)]A(不兼容2)5494,5326,5483678,674,667注:不兼容1:直接返回根节点本身不兼容2:直接异常汇总fastjson完全不兼容。json-path性能不理想,函数使用受限。snack3性能最好,支持。2.非标准模式,功能使用空间更大。附件1: Snack3项目地址:https://gitee.com/noear/snack3 noear/snack 3附件2:..以及函数表达式的兼容性JSON-PATH:(snack3的标准模式与snack 3相同)求解如下:选择器的执行顺序:(括号内的表达式求解后聚合)$..(ary2[0]。a)美元..(c.min()) //如果c不是数组,这里会出错$..(ary2[0][0]) only: data.list[?(@单位为美元..ary2[0]。a)]只能:在原数组节点上执行函数snack 3:(snack 3的非标准模式)。求解策略如下:选择器的执行顺序:(括号中的表达式先求解再聚合)($..ary2 [0])。一个($..c)。最小()。同时,它还兼容其他表达式($..ary2[0])[0] //这种表达式会造成不同的结果//但实际中很少出现:data.list[?(@单位为美元..ary2[0]。a)]或data.list[?(@ == $..ary2[0]。a[0])]是:对原数组节点或查询结果执行函数。附件3:测试代码com.alibaba:fastjson测试代码:https://gitee.com/noear/snack3/blob/master/snack3 _ demo/src/Benchmark/JSON Path/speedfastjsonpathtest . Java com . jayway . JSON Path:JSON-Path测试代码:https://gitee.com/noear/snack3/blob/master/snack3 _ demo/src/Test/Java/Benchmark/JSON Path/speedjaywayjsonpathtest . Java org . noear:snack 3测试代码:https://gitee.com/noear/snack3/blob/master/snack3 _ demo/src/Test/Java/Benchmark/JSON Path/speedjsonpathtest . Java


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部