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

2024-02-15 23:18

本文主要是介绍你确定你了解widows文件夹的含义吗?——亲爱的内存溢出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

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

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

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

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

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

这篇关于你确定你了解widows文件夹的含义吗?——亲爱的内存溢出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/712833

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J