python的out of memory问题

折腾了一整天又换电脑又重装系统重装各种软件插件 

最后发现out of memory只是因为少写了一行代码 

内心的崩溃无法用语言形容 


虽然本来是乌龙一场 但是这个过程中解决问题get一些新技能 

也不能说完全没有收获【强行收获】【一个大写的心理安慰】


开始我的4G小笔记本out of memory之后,我换了一个32G内存的电脑 

各种重装系统折腾半天好不容易都装好了程序可以跑起来,发现还特么out of memory 

我是懵逼的


【其实是因为我少写了sparql.setQuery(queryString) 语句导致默认查询整个数据集【手动再见

但是那时候我不知道 我认为32G内存怎么也够啊 怎么就还out of memory呢 

然后我找到了知乎上的这个问题 

https://www.zhihu.com/question/29146270 

如何解决 python 的 out of memory 问题

有答主说:

部分 Windows 版本能够使用的内存是受限的。32位程序最多只能使用不到4G内存。

你是不是用了32位系统,或者是在64位系统上装了32位 python。任何一种情况都会导致单个程序所占内存不能超过4G。

这台电脑系统是64位的,一查我装的python果然是32位,果断下了个64迅速重新配置一下。

果然不溢出了,但是似乎查出了所有的rdf三元组嗖嗖嗖停不下。。。。

至此我才意识到可能是程序写错了,定睛一看特么少写一句查询代码,害我十八般武艺都用上白折腾一顿中途还数次怀疑人生,什么都不说了 

我选择死亡。



Python中,错误“out of memory”通常表示程序在运行过程中尝试使用的内存超过了系统或Python解释器能够提供的内存限制。这个错误可能由多种原因引起,以下是一些常见的原因和解决方法: 1. **数据量过大**: - **原因**:处理的数据量过大,超出了内存的承载能力。 - **解决方法**:可以尝试分批处理数据,或者使用生成器(generator)来逐步读取和处理数据,而不是一次性将所有数据加载到内存中。 2. **内存泄漏**: - **原因**:程序中存在未释放的内存引用,导致内存无法被回收。 - **解决方法**:使用内存分析工具(如`tracemalloc`)来查找内存泄漏的源头,并确保在不需要时释放对象。 3. **循环引用**: - **原因**:对象之间存在循环引用,导致垃圾回收器无法回收内存。 - **解决方法**:使用`weakref`模块来创建弱引用,避免循环引用。 4. **不必要的对象创建**: - **原因**:程序中创建了大量不必要的对象,占用了大量内存。 - **解决方法**:优化代码,减少不必要的对象创建,尽量重用对象。 5. **使用不当的库**: - **原因**:某些库在处理大数据时会消耗大量内存。 - **解决方法**:选择更高效的库,或者在处理大数据时使用专门处理大数据的库,如`pandas`的`chunksize`参数。 示例代码: ```python # 使用生成器处理大数据 def read_large_file(file_path): with open(file_path, 'r') as file: for line in file: yield line # 逐行处理文件 for line in read_large_file('large_file.txt'): process(line) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值