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

2024-02-15 23:18

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

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

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

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

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

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

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

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

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

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



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

相关文章

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而