场景1: 无限while循环
解决方案: 尽量减少无限循环、让循环执行得慢一点(sleep)
场景2: 频繁GC
解决方案: 降低GC频率
场景3: 频繁创建新对象
解决方案: 合理使用单例
场景4: 序列化和反序列化 XStream在反序列化大对象时有严重的性能问题_dogegg250_51CTO博客
解决方案: 选择合理的API实现功能、选择好用的序列化/反序列化类库
场景5: 正则表达式。原因是正则表达式使用了NFA自动机的引擎,这种引擎在进行字符串匹配的时候会发生回溯,可能导致CPU占用率过高。关于NFA的更多细节及解决方案可以参考下面的文章:
正则表达式和 CPU 100%有什么故事?_小菜鸟的博客-CSDN博客
场景6: 频繁的线程上下文切换
解决方案:降低切换的频率,可能需要结合业务进行改造,复杂度较高