性能测试报告
说明
JSONMap 底层基于 HashMap,单次读写性能与原生 Map 相当。路径解析结果会被缓存,重复访问同一路径时性能开销很小。
详细的性能测试代码位于:
src/test/java/com/dlz/comm/performance/JSONMapPerformanceTest.java
运行测试
mvn test -Dtest=JSONMapPerformanceTest
测试会输出三种方式的对比数据(构造 1 次 + 读取 N 次,以及每次构造并读取):
- 传统方式:Map + 多层判空强转
- JSONMap 直接路径:
response.getStr("data.order.orderId") - JSONMap 子对象:
response.getMap("data.order")+ 逐字段读取
测试数据
{
"code": 0,
"message": "success",
"data": {
"order": { "orderId": "WX20240205001", "status": 1, "amount": 9900 },
"user": { "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o" }
}
}
使用建议
- 读取同子对象的多个字段:先
getMap("data.order")再逐字段读 - 读取不同层级的字段:直接路径
- 超大数据量多线程:三种方式差异很小,按代码可读性选择即可
性能瓶颈通常在网络 IO 和数据库查询,JSONMap 自身的开销在实际业务中可忽略。