5
fastjson版本1.2.27
在使用反序列化时,代码如下:
String detail=***
Map<String,String> parameters = JSON.parseObject(detail, Map.class);
生产环境,反序列化请求参数时,查看cpu使用率非常高,此时请求tps 约在200左右,
cpu情况:
Cpu0 : 98.3%us, 0.3%sy, 0.0%ni, 1.0%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu1 : 97.3%us, 1.0%sy, 0.0%ni, 1.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu2 : 97.3%us, 1.0%sy, 0.0%ni, 1.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 98.3%us, 0.0%sy, 0.0%ni, 1.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu4 : 98.3%us, 0.3%sy, 0.0%ni, 1.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 98.7%us, 0.7%sy, 0.0%ni, 0.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 98.0%us, 0.3%sy, 0.0%ni, 1.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu7 : 98.7%us, 0.3%sy, 0.0%ni, 1.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
查看进程中线程占用cpu高的堆栈如下:
http-apr-8900-exec-78" #114 daemon prio=5 os_prio=0 tid=0x00007fdf5c265000 nid=0x410b runnable [0x00007fdef74f0000]
java.lang.Thread.State: RUNNABLE
at com.alibaba.fastjson.parser.JSONLexerBase.skipComment(JSONLexerBase.java:562)
at com.alibaba.fastjson.parser.JSONLexerBase.skipWhitespace(JSONLexerBase.java:3153)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:577)
at com.alibaba.fastjson.parser.deserializer.MapDeserializer.deserialze(MapDeserializer.java:58)
at com.alibaba.fastjson.parser.deserializer.MapDeserializer.deserialze(MapDeserializer.java:39)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:645)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:350)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:254)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:467)
请问这是什么原因导致的