记录最近项目CPU过高的原因分析

两次项目CPU过高的原因其实都与代码中for循环计算的次数太多有关

1 定时任务全表扫描两层for循环

图1

        如上图所示,原来的表由只存实时数据改为存历史数据,这里代码中查询表没有加限制条件导致全量查询表中数据,这里两层for循环还加计算判断,运行这个方法时服务器CPU瞬间飙升

2 for循环次数太多CPU慢慢升高

图2

        原来的代码中使用迭代器,在代码中两层循环,每个循环上千次,一个文件解析需要循环上百万次,这里改为JDK8的stream 流操作进行一层循环,里面直接判断在另一个json中是否存在相同的key,减少循环的次数

图3

        这个和上面不太一样的是它不是CPU瞬间飙升,观察一段时间CPU占用一直很低,但是几个小时后CPU变的很高,这种情况CPU是慢慢的升高,这种情况分析代码排查要久一些

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容