繁体   English   中英

如何通过命令行限制 Python 脚本的 memory 使用?

[英]How can I limit memory usage for a Python script via command line?

如何通过命令行限制 Python 脚本的 memory 使用?

对于上下文,我正在实现代码判断,因此我需要运行学生提交的每个脚本,我可以使用以下命令对 Java 执行相同的操作:

java -Xmx<memoryLimit> Main 

到目前为止,Python 没有运气,有什么想法吗?

PS:我正在使用 Python 3.8

谢谢你。

您可以在 Linux 系统上使用ulimit (Python内, 还有resource.setrlimit()限制当前进程。

像这样的东西(对不起,我的 Bash 生锈了)应该是一个足够体面的包装:

#!/bin/bash
ulimit -m 10240  # kilobytes
exec python3 $@

然后运行例如that-wrapper.sh student-script.py

(也就是说,您确定您可以相信您的学生不会提交上传您的秘密 SSH 密钥和/或破坏您的文件系统的内容吗?我建议使用更强大的沙箱,例如在 Docker 容器中运行所有内容。)

不知道你为什么想要/需要那个。 与Java相比,Python非常擅长处理memory。 它具有适当的垃圾收集器,并且在使用 memory 时非常有效。 所以在我 10 多年的 python 编程中,我从来没有必要在 python 中限制 memory。 但是,如果您真的需要它,请查看此线程将 RAM 使用限制为 python 程序 似乎有人发布了解决方案。

您通常将 memory 限制在操作系统级别,而不是 python 本身。 您也可以使用 Docker 来实现所有这些。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM