Python程序运行中报Memoryerror的解决方案

您所在的位置:网站首页 python申请内存空间 Python程序运行中报Memoryerror的解决方案

Python程序运行中报Memoryerror的解决方案

2024-01-16 08:45| 来源: 网络整理| 查看: 265

在求解某高维时间依赖非线性的PDE中,空间计算域在每一个空间方向均为M=256,且快速算法被执行以解决储存与计算速度问题;而时间方向取T=2000,时间步长0.01。

在Spyder提前运行过,第一次假如迭代了1468次,即会报Memoryerror

注意,程序中所有定义的数组均可以在有限储存下申请的

然后关闭Spyder,重新运行比如可以迭代12147次,报Memoryerror

首先、可以通过任务管理器查看电脑内存是否不足 在这里插入图片描述

然后根据存在的一些解决方案,我们尝试如下处理: 1、扩充虚拟内存 我在运行代码的过程中发现,出现memory error错误的时候,个人储存也不可能会出现这个错误啊,所以我查了下,发现有说是内存被限制了,考虑关掉一些可能限制内存的软件啦,扩大虚拟内存啦,这些的。

扩大虚拟内存的方法(我的系统是win8,不过应该都大同小异): 1、打开 控制面板; 2、找到 系统 这一项; 3、找到 高级系统设置 这一项; 4、点击 性能 模块的 设置 按钮; 5、选择 高级面板,在 虚拟内存 模块点击更改; 6、记得 不要 选中“自动管理所有驱动器的分页文件大小”,然后选择一个驱动器,也就是一个盘,选中自定义大小,手动输入初始大小和最大值,当然,最好不要太大,更改之后能在查看盘的使用情况,不要丢掉太多空间。 7、都设置好之后,记得点击 “设置”, 然后再确定,否则无效,最后 重启电脑 就可以了。

如果在设置完这一步之后还是出现了内存错误,则

2、更新Pandas和Numpy库为64位 如果你的Python用的是32位的,那么你的pandas和Numpy也只能是32位的,那么当你的内存使用超过2G时,就会自动终止内存。发现这个错误也是因为我察觉到报内存溢出的错误的时候,我的内存明明显示只用了40+%,然后错误提示是在pandas的core中,所以查了一下,发现原来还有这么个大坑。

解决方法就是:先检查一下你的python是多少位的,在shell中输入python,查看位数,如果是32位,那么就重装Python,装一个64位的,但同时你的库也需要重新装了。不过我执行完这一步之后,问题就完美解决了!

3、如果还有内存溢出的错 以上方法,按顺序逐一使用,到哪一步错误消失了就可以停止啦。当然了,如果你的内存显示使用达到了99%+,那么就是内存真的不够用,不是别的问题,如果不是数据量特别大,那就是写代码的时候的习惯问题,虽然Python有垃圾回收机制,但是有时候可能来不及回收,尤其是在循环迭代这些过程中,往往会循环完毕了才来得及收拾垃圾,所以记得及时把不要的变量del掉,或者用gc这个垃圾回收库,这样内存自然就一直清清爽爽啦~ 4、换台式机进行运算

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3