gpt4 book ai didi

python - 在 python 脚本中设置堆栈大小

转载 作者:IT老高 更新时间:2023-10-28 20:24:53 25 4
gpt4 key购买 nike

我正在将 csh 脚本转换为 python 脚本。该脚本调用了一个需要非常大堆栈的内存密集型可执行文件,因此 csh 脚本将堆栈大小设置为无限制:

limit stacksize unlimited

当我尝试在 python 中重现这个脚本时,我以一种非常幼稚的方式执行它们,使用 os.system,例如:

os.system('some_executable')

但我不知道如何告诉操作系统以无限堆栈大小运行这些可执行文件。有没有办法为 python 脚本中的调用指定堆栈大小?我应该使用一些低级系统调用吗?是否有一个模块(类似于shutil)来控制它?

最佳答案

我对以下代码有很好的经验。它不需要任何特殊的用户权限:

import resource, sys
resource.setrlimit(resource.RLIMIT_STACK, (2**29,-1))
sys.setrecursionlimit(10**6)

但它似乎不适用于 pypy。

如果resource.setrlimit不起作用,也可以尝试使用线程:

sys.setrecursionlimit(10**6)
import threading
threading.stack_size(2**26)
threading.Thread(target=main).start()

关于python - 在 python 脚本中设置堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5061582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com