Python:为特定函数调用设置内存限制

2024-02-10

在Python脚本中,我想为某个函数调用设置内存限制。我在看如何限制堆大小 https://stackoverflow.com/questions/2308091/how-to-limit-python-heap-size;但是,我不想限制整个正在运行的 Python 进程的内存——即在函数调用之前和之后设置内存限制。

有什么方法可以使用给定的内存量进行函数调用,以便内存限制不会影响调用者?


不,这是不可能的。 Python 不会跟踪哪些函数负责分配新内存,libc 也不会跟踪,因此无法仅通过单个函数来限制内存使用。

为了做到这一点,你必须修改 Python,以便使用一个新函数来分配内存,该函数需要指定 Python 函数负责的内容,以便在该函数超出其限制时它可以拒绝内存分配。

正如 @JBernardo 所说,执行此操作的唯一其他方法确实是在内存有限的单独进程中执行该函数。

至于沙箱的实现,已经有相对完善的测试实现。有什么理由不能使用这些吗?特别是参见 PyPy 的沙盒虚拟机 http://pypy.org/features.html佐普沙盒 http://pypi.python.org/pypi/RestrictedPython.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:为特定函数调用设置内存限制 的相关文章

随机推荐

  • UI层向业务层返回什么?

    我正在编写一个 ASP NET 应用程序 它有 UI 层 业务逻辑层和数据访问层 我从数据层将业务对象返回到业务逻辑层 并将它们传递到 UI 层 但是 当我想使用 UI 层的数据执行保存 插入时 我不确定该怎么做 我应该在 UI 层创建业务
  • Python (2.4) 字典中的排序

    r dict answer1 value1 answer11 value11 answer2 value2 answer3 value3 answer4 value4 for i in r dict if answer in i lower
  • Fontforge 脚本如何为字形添加连字

    我正在 Fontforge 上使用脚本制作字体 一切顺利 但我有这个问题 我不知道如何指定选定的字形 如果其他两个字形同时出现 则显示选定的字形 我已经为此创建了查找表和子表 但我不知道为指定字形定义一些连字的函数 以下是创建表和子表以将连
  • 使用 Python 和 xlwings 在 Excel 中查找活动/选定单元格的范围

    我正在尝试用Python 使用xlwings 编写一个简单的函数 该函数读取Excel中当前的 活动 单元格值 然后将该单元格值从活动单元格写入下一列中的单元格 如果我使用绝对引用指定单元格 例如 range 3 2 那么一切正常 但是 一
  • 在 Linux 中向当前日期添加 x 秒

    我这里有两台 Linux CentOS 6 0 机器 我需要在当前日期时间上添加 或删除 5 秒 最后 我的两台机器都会有5秒的差距 一台时间正确 另一台或多或少有5秒 我知道我可以使用以下命令更改日期 date s DD MMM YYYY
  • 对一个集合的元素执行操作并迭代结果以执行其他操作

    如果我有2个收藏 List
  • Eclipse Markdown 表未呈现

    我现在已经在 Eclipse 中尝试了四种不同的 Markdown 编辑器 但它们都无法在预览中渲染表格 它们总是平坦的 一个简单的表就像 hans pans 1 2 渲染得像 hans pans 1 2 我知道语法是正确的 因为它在 Ec
  • 根据输入值重定向到页面

    我正在尝试在页面上创建一个需要用户输入文本的表单 提交表单后 用户将被重定向到分配给它的页面 我的问题是我哪里出了问题 我应该如何解决这个问题 有人可以添加 JSFiddle 或 Codepen io 笔用于清除目的吗 例如 用户输入并提交
  • 在 R (CRAN) 中创建和裁剪网格

    我需要在 gstat 库中创建一个用于空间插值的掩模网格 具体来说 我有随机分布的不同采样点 我需要创建包围这些点的最小凸多边形 然后 我必须创建一个空间网格 该网格应由计算的外壳裁剪 以将插值限制在该多边形的范围内 如果有人能向我解释详细
  • Java限制资源使用

    有没有办法限制java使用的核心数量 同样 是否有可能限制该核心的使用量 您可以在 Linux 上使用任务集 您还可以降低进程的优先级 但除非 CPU 繁忙 否则进程将获得尽可能多的 CPU 我有一个将线程专用于核心的库 称为 Java T
  • 启动时自动运行 Jetty

    我正在尝试让 Jetty 在我的 Ubuntu 上自动启动 我已经完成了这些命令 cp opt jetty bin jetty sh etc init d update rc d jetty sh defaults 但是当我运行它时 我得到
  • sqlalchemy 中的scoped_session(sessionmaker()) 或普通sessionmaker() ?

    我在我的网络项目中使用 SQlAlchemy 我应该用什么 scoped session sessionmaker 或普通sessionmaker 为什么 或者我应该使用其他东西 model py from sqlalchemy impor
  • 将十进制数转换为二进制数

    我目前正在阅读 Charles Petzold 的书 Code 在其中 他解释了如何使用以下模板将十进制数转换为二进制数 128 64 32 16 8 4 2 1 在书中 他对如何使用模板的解释如下 将整个十进制数 小于或等于255 放入上
  • 将图像保存到数据库mysql中

    我的客户在 php mysql 中创建了一个脚本 将图像直接保存在数据库中 每个图像都有这样的 url www example com image php id 421 您认为这是一个非常错误的解决方案 我应该重建所有网站吗 每天约有 10
  • 如何用 C++ 编写文本编辑器[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我断断续续地学习了 C 好几次 但从未使用它编写过真正的应用程序 很长一段时间我一直认为编写一个文本编辑器会是一件非常有趣的事情 现在我正
  • 通过 S3 从 Amazon CloudFront 提供 gzip 压缩的 CSS 和 JavaScript

    我一直在寻找使我的网站加载速度更快的方法 我想探索的一种方法是更多地利用 Cloudfront 由于 Cloudfront 最初并未设计为自定义源 CDN 并且它不支持 gzip 压缩 因此到目前为止 我一直在使用它来托管所有图像 这些图像
  • 如何将焦点设置到下一个输入框 onkeyup 像选项卡功能

    我正在动态创建输入框以捕获某个单词的输入 例如 H E L L O 表示 你好 我想在每个输入框中输入单个字符后将焦点设置到下一个输入框 我该怎么做
  • 将应用程序安装到越狱的ios根目录的Applications文件夹中

    当我将 myapp app 放入 ios5 根目录的应用程序文件夹中时 但它无法工作 为什么 但我发现cydia可以正常工作 在main m中添加setuid 0 and setgid 0 正常构建应用程序 然后将可执行文件复制并粘贴到 a
  • golang中无法获取cookie过期时间

    我正在设置一个新的 cookie func f1 w http ResponseWriter r http Request expire time Now AddDate 0 1 0 cookie http Cookie token tok
  • Python:为特定函数调用设置内存限制

    在Python脚本中 我想为某个函数调用设置内存限制 我在看如何限制堆大小 https stackoverflow com questions 2308091 how to limit python heap size 但是 我不想限制整个