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

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

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

     

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

    心里暗喜。

     

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

     

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

     

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

     

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

  • 相关阅读:
    HDU 1301 Jungle Roads (最小生成树)
    POJ 1733 Parity game (并查集)
    HDU 3038 How Many Answers Are Wrong (并查集)
    CentOS用yum安装搭建LAMP
    Linux下php安装Redis扩展
    PHPExcel用法
    利用phpmailer类邮件发送
    Vim编辑器配置
    vhost文件设置
    ThinkPHP验证码类
  • 原文地址:https://www.cnblogs.com/kwblog/p/13579960.html
Copyright © 2011-2022 走看看