你确定你了解widows文件夹的含义吗?——亲爱的内存溢出

 

    前两天在zhjy做ysjyh这个模块功能的最后时刻,出现了一个可爱的错误:内存溢出。问题描述:模块中有个功能叫做文件备份,文件备份,自然会用到文件的打包和下载以及打包下载。在文件生成备份的时候,直接内存溢出。

对于老手,这类错误依然不是好排查的,当我看到这个错误的时候更是一头雾水,可以说我几乎不了解。不知道会有什么原因造成内存溢出,只是理论上知道有资源没有释放,但是哪里的资源没有释放、该怎么去查找这个没有释放的资源我就不清楚了。呜呜,好可怜,当时离着项目交付只有一天的时间了,而我还有一整个小模块的功能没有做。心里确实很着急。

       黄基强看到这个错误的时候首先经过断点定位到文件打包的过程中有问题。当时他很忙,顾不上我这边的排错,只是让我跟进去看看是不是打包过程中有没有流没有关闭,于是我就看那个类中的和文件打包相关的几个方法是不是有流没有关闭。哦?!好像真的有。。其实我也不太懂啦,感觉这个地方好像不需要关闭,但是它确实没有关闭。反正先关了再说。呜呜,悲剧。直接死掉了,打包过程直接被我切断了,事实证明,和流没有关闭是没有关系的。那些所谓的没有关闭的流是有其不关闭的意义。。。

       经过简单的奋斗,我也没明白怎么回事,怀着一颗受伤的心,下班回家了。。。

       第二天,黄基强再次看我的内存溢出,在内存溢出之前有打包成功的(解释:备份材料会同时打包多个,在内存溢出时候打包成功了部分)文件,于是他打开这个成功的zip包,进去一看,唔?!怎么文件名都一样?啊?!因为上传文件的时候,只是测试嘛,就随便上传,上传了一堆一样的文件啊。。。这个。。。汗呀。。。

       这时候,黄基强无语加无奈呀!

       请问,你知道为什么内存溢出了吗?

        请你看你的文件夹里会有同名的文件吗?不会的!而我却给了同一个文件夹下相同的文件名。当文件打包的时候读到相同名的文件的时候不知道读到哪里了,不停的读,结果就内存溢出了。看来要真正理解windows文件夹的概念还是不能只停留在理论上呀。

你可能感兴趣的:(你确定你了解widows文件夹的含义吗?——亲爱的内存溢出)