前言
自己在项目中需要的一个问题,很常见,如果平时不注意,日常环境运行还OK,但是到了生产环境就出现cpu飙升异常.
问题排查
- 首先登录服务器 用 top命令看下那个cpu使用率最高. 找到对应的pid .
2.jstat 一个极强的一个VM监控工具;jstat -gcutil pid 可以查看对应该id进程的gc所有状况.
3.然后定位到时一段代码 for 循环引起的异常.
在for循环中进行字符串拼接 用 String str="_"+name; 用 + 来拼接起来的,循环次数越多,性能指数倍下降。 所以 这中情况下 要 用 StringBuffer,不然会引起cpu飙升。