zoukankan      html  css  js  c++  java
  • 记一次内存溢出问题的代码排查

    下午帮忙排查一个问题,邮件如下:

    然后我就根据邮件里提供的方法,进行查看代码。

     

    查看提供的四个方法后,发现另外三个方法都指向第一个方法,看来大概率是一个问题导致的,

    心里暗喜。

     

    熟悉了整个过程后,最后锁定问题出在“导出所有数据”。

     

    这个项目在导出数据的dao层,进行查询数据的地方,对查询到的数据进行for循环操作,在for循环中,又对一个表进行了查询操作。查了一下for循环的数据量,最多的将近万条数据。

     

    这样就对数据库造成了很大的压力,再看看前台界面,对导出全部数据也没有进行限制点击,可以在短时间内进行多次点击,多种不当之下,导致发生了以上问题。

     

    通过这个问题,我们要注意,在使用for循环的时候要谨慎,for循环当中如果有对数据库有查询或者其他操作,要判断下数据量,或者在前台对一次操作进行限制,不要让用户重复操作,导致系统崩盘。

  • 相关阅读:
    js实现对身份证校验
    zip解压缩
    zip压缩
    文件内容编解码
    文件的操作
    Mysql账号管理
    深度优先算法DFS
    Java常见知识问答
    Hibernate的单向OneToMany、单向ManyToOne
    Angularjs在线编辑器
  • 原文地址:https://www.cnblogs.com/kwblog/p/13579960.html
Copyright © 2011-2022 走看看