场景1:无限while循环
解决方案:尽量减少无限循环、让循环执行得慢一点(sleep)
场景2:频繁GC
解决方案:降低GC频率
场景3:频繁创建新对象
解决方案:合理使用单例
场景4:序列化和反序列化 https://blog.51cto.com/jianshusoft/766400
解决方案:选择合理的API实现功能、选择好用的序列化/反序列化类库
场景5:正则表达式。原因是正则表达式使用了NFA自动机的引擎,这种引擎在进行字符串匹配的时候会发生回溯,可能导致CPU占用率过高。关于NFA的更多细节及解决方案可以参考下面的文章:
https://blog.csdn.net/u013278314/article/details/80916104
场景6:频繁的线程上下文切换
解决方案:降低切换的频率,可能需要结合业务进行改造,复杂度较高