python脚本限制_python3从一个脚本限制内存使用

我正在使用itertools模块为一个相当长的句子中的字母顺序创建一个可能的排列列表。然而,每次我这么做,我就会耗尽内存(在别人问我之前,我有16GB的内存)。在

我没有这台机器上的代码,但是它并不是低效的代码,因为它是文档中某个示例的复写本,Python试图一次完成太多的置换。在

问题是,有没有一种方法可以限制Python使用的内存量,比如给它一个池?我知道我可能应该更改代码,但我也可以从其他项目的内存池中获益。在

我不能使用Theano模块,因为我正在使用Conda,这是不兼容的。我尝试过gc模块,但效果不大,代码还是一个例子,句子大约有十几个字符,在屏幕上打印列表。在

编辑:

这是我代码的主要部分。我不建议运行它,因为它会导致我的机器崩溃。在import itertools

f = open('File.txt','w')

for key, value in dict.items():

print(list(itertools.permutations((str(counter-value)))),file=f)

dict变量是一个76个元素的字典,包含代码检查的不同字符。代码的实际功能很复杂,可以放入大约100行的脚本中,但这正是我遇到问题的地方。如果代码有效,它应该是计算字面上数百万排列。我的问题是它试图一次完成所有任务。我想知道是否有什么方法可以限制它,即使这意味着代码运行速度会变慢。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
共享内存是一种在不同进程之间共享数据的方法,需要使用 Python 的 multiprocessing 模块来实现。这里提供一个简单的例子,来演示如何在不同脚本文件之间共享一个变量: 1. 在一个脚本文件中定义一个共享变量: ```python from multiprocessing import Value # 定义一个共享变量 shared_var = Value('i', 0) ``` 这里使用了 multiprocessing.Value() 函数来创建一个共享变量,第一个参数 'i' 表示这个变量是一个整数类型。 2. 在另一个脚本文件中导入这个共享变量: ```python from first_script import shared_var # 修改共享变量的值 shared_var.value = 1 ``` 这里通过 from first_script import shared_var 导入了第一个脚本文件中定义的共享变量,然后可以修改它的值。 需要注意的是,共享变量的 value 属性是一个 Multiprocessing.Value 对象,需要通过 .value 来访问它的实际值。 3. 运行两个脚本文件来测试共享变量是否能够正常工作: ```python # first_script.py from multiprocessing import Value shared_var = Value('i', 0) # second_script.py from first_script import shared_var shared_var.value = 1 print(shared_var.value) # 输出:1 ``` 在运行 second_script.py 的时候,它会修改 first_script.py 中定义的共享变量的值,并且打印出来,说明共享变量已经被成功地共享了。 这里只是提供了一个最简单的例子来演示如何在不同脚本文件之间共享一个变量,实际使用中可能需要更复杂的逻辑和数据结构来实现更复杂的共享。同时需要注意共享变量的读写安全,避免出现多个进程同时读写同一个变量的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值