python 如果内存消耗过高则中断进程
python break process if memory consumption is to high
我正在使用一个模块,有时它会因为内存消耗而崩溃。它由 SIGKILL 9 终止,脚本被中断。但是我无法访问发生内存消耗的循环。
现在是这样的:
import module
output = module.function(args)
它应该是这样的:
import module
if ramconsumption(module.function(args)) > 999:
output = None
else:
output = module.function(args)
你知道如何实现这个吗?我的示例只是为了更好地理解,解决方案应该是当消耗过多内存时我没有收到 SIGKILL 的解决方案。
这可能有效:
import os
import psutil
import module
import threading
def checkMemory():
while True:
process = psutil.Process(os.getpid())
memoryUsage = process.memory_info().rss #in bytes
if memoryUsage > amount:
print("Memory budget exceeded")
break
os._exit(0)
threading.Thread(name="Memory Regulator", target=checkMemory).start()
output = module.function(args)
我正在使用一个模块,有时它会因为内存消耗而崩溃。它由 SIGKILL 9 终止,脚本被中断。但是我无法访问发生内存消耗的循环。
现在是这样的:
import module
output = module.function(args)
它应该是这样的:
import module
if ramconsumption(module.function(args)) > 999:
output = None
else:
output = module.function(args)
你知道如何实现这个吗?我的示例只是为了更好地理解,解决方案应该是当消耗过多内存时我没有收到 SIGKILL 的解决方案。
这可能有效:
import os
import psutil
import module
import threading
def checkMemory():
while True:
process = psutil.Process(os.getpid())
memoryUsage = process.memory_info().rss #in bytes
if memoryUsage > amount:
print("Memory budget exceeded")
break
os._exit(0)
threading.Thread(name="Memory Regulator", target=checkMemory).start()
output = module.function(args)