分享

可能导致CPU占用率过高的场景与解决方案

 小王曾是少年 2022-08-24 发布于江苏

场景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:频繁的线程上下文切换

解决方案:降低切换的频率,可能需要结合业务进行改造,复杂度较高

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多