当 Perl 内存不足时,是否有标准的行为方式?

2024-01-15

Perl 解释器(又名“perl”)在内存不足时是否有标准的行为方式?是否以任何方式记录/指定?以某种统一的方式编码?

我对任何表示为正在运行的 Perl 代码契约的标准特别感兴趣 - 例如,将die叫做?将要END块被执行? ETC...

我对这两个“理论”答案都很满意(例如,来自 Larry/P5P/etc 的某种通用“这是 Perl 代码在内存不足时通常应该执行的操作”任务声明文档...,即使并非 100% 的 malloc() 调用遵循此规则);或“实用”语句(例如,Perl 中的所有 malloc() 调用都包装到通用的“allocate_memory”函数中,该函数统一处理所有失败)。

答案可能取决于具体导致内存不足的原因(例如,为 Perl 代码的数据结构请求更多内存与由与 Perl 程序中显式“需要存储更多数据”逻辑无关的内部 Perl 代码分配的内存) 。

如果答案与实现高度相关,则假设适用于 Solaris/Linux 的 perl,并缩小到任何最新的稳定版本(5.8 到 5.16)是可以接受的。

这个问题仅限于标准 Perl 解释器,但是您希望定义它的预编译配置(例如,主要 Linux 发行版附带的 Perl,或者使用所有默认值编译的 Perl 等)。

NOTE: This question came out of Gilles's comment to another Q https://stackoverflow.com/questions/13234866/can-a-perl-system-call-ever-die#comment18042068_13234866


看看各种诊断警告的手册页 http://www.manpagez.com/man/1/perldiag/当启用“use Diagnostics”编译指示时,Perl 将发出此消息,您可以看到各种不同类型的“内存不足”错误及其含义。

因此您可以从这些消息中推断出“标准”行为;带感叹号的(“内存不足!”)听起来像您要问的:

Out of memory!
(X) The malloc() function returned 0, indicating there was
insufficient remaining memory (or virtual memory) to satisfy the
request.  Perl has no option but to exit immediately.

“X”级错误被标记为“非常致命的错误(不可捕获)”。

然而,如果它是一个“大请求”(大于 64K),它是可捕获的(我猜 Perl 假设它有足够的内存来干净地关闭)。

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

当 Perl 内存不足时,是否有标准的行为方式? 的相关文章

随机推荐

  • 如何将多列乘以另一列pandas

    我有一个 100 列的数据框 我想将一列 计数 值与范围从 6 到 74 的列位置相乘 请告诉我该怎么做 我已经试了 df df ix 0 6 74 multiply df Count axis index df df df columns
  • Django:Bootstrap CDN 或从本地服务器加载 Bootstrap 文件?

    我正在尝试制作我的第一个网站 我正在使用 Django 我有一个与 Bootstrap 中包含 css js 相关的问题 安装它和使用链接它有什么区别BootstrapCDN 如果该链接无法再访问会发生什么 会影响网站吗 我不能将这些文件包
  • Javascript,固定一位小数,除了为 0 时

    我需要将小数点后的数字固定为小数点后一位 所以我尝试了以下方法 const convert numberWithDecimal gt numberWithDecimal toFixed 1 replace replace d d 3 d g
  • 如何从spring资源获取文件

    我有一个资源对象 org springframework core io ClassPathResource 我需要获取 File 对象 但是resource getFile 抛出异常文件未找到 但调用后resource getURI 我有
  • DbMigrator - 详细的代码优先迁移

    使用包管理器控制台时 您可以运行以下命令 PM gt Update Database Verbose The Verboseswitch 会将所有尝试的 SQL 命令写入控制台窗口 这对于调试非常有用 您可以使用DbMigrator类在代码
  • 无法将图像传递给另一个类

    我正在尝试将图像传递给另一个类intent but 它只适用于captured image 不是为了image selected from gallery 这是相机功能开始的地方 ImageFitScreen java 它有一个ok用于返回
  • 浏览器渲染和 JavaScript 执行的同步/异步性质

    我有一些处理需要花费几秒钟 所以我想在处理过程中添加一个视觉指示器 processing background color ff0000 div Processing div Script mydiv addClass processing
  • Skobbler SDK Android - SKNavigationState 对象损坏/不一致

    我们确实遇到了 SKNavigationState 更新与 Android 的一些不一致问题 有时 我们在开始导航后会得到不一致的 SKNavigationState 对象 因此导航停止工作 奇怪的是 有时它确实有效 首先 我们怀疑某些构建
  • 用于列出所有打开的资源管理器窗口的 Powershell 脚本

    这个问题 https stackoverflow com questions 31347905 get report of all open explorer windows显示了一个 Powershell 脚本 用于生成打开的文件资源管理
  • 通过命令行使用苏门答腊pdf批量打印pdf

    自从 Adob e 发布了 Adob e Reader 的新更新 2014 年 9 月 16 日的 11 09 以来 我们在通过命令行打印 pdf 文件时遇到了问题 我们的正式脚本如下所示 job for F tokens 1 delims
  • vuex 未加载用 vuex-module-decorators 装饰的模块

    当尝试将带有 vuex module decorators 的存储模块加载到初始化程序中时 我收到此错误 vuex esm js 2f62 261 未捕获类型错误 无法读取属性 Array forEach 的 eval vuex esm j
  • 在 SQL Server 中存储大量 XML 类型数据的最佳实践

    是否有人可以分享有关在 SQL Server 2008 中存储 XML 字段类型数据的最佳实践 我们有很多小型 XML 结构 但也有一些较大 gt 50MB 我们发现删除时速度有点慢 任何建议 战争故事将不胜感激 我发现到目前为止大多数答案
  • SELECT 语句中有多个条件?

    首先 我没有 ABAP 经验 我在这里只是猜测 我想向现有报表中的 SELECT 添加条件 现有代码如下所示 SELECT SINGLE FROM EKPO WHERE EBELN GT MSEG EBELN AND EBELP GT MS
  • 更改PostgreSQL 9.6中某种数据类型表中的所有列

    似乎几个月前我遇到了一个涉及此问题的问题 但现在我似乎找不到了 基本上 我想做两件事 首先 制作了许多表格 其中有几列numeric 20 2 我想把它们全部改为numeric 对于一列来说 该语句很简单 ALTER TABLE table
  • 如何更改 Visual Studio Code 中的 UI 语言?

    如何更改 UI 语言视觉工作室代码 https code visualstudio com 1 0 于 2016 年 4 月发布 打开VScode 按 F1 并输入 显示 选择 配置显示语言 选择你的语言 上面是已安装的语言 下面是其他语言
  • 如何用Java连接MySQL?

    我已经安装了MYSQL服务器5 1 然后我安装了 mysql connector java 3 0 8 stable bin jar 并将其放入驱动器 c 中 文件夹 core 为 C core 然后在计算机的属性中 我创建带有变量名 CL
  • Three.js 鼠标滚轮用于向上/向下移动相机而不是放大/缩小

    你怎么做到这一点 我使用创建了一个场景三 js编辑器 https threejs org editor 并使用 发布 选项下载该项目 我编辑了 app js 文件以导入 OrbitControls 因此现在我可以使用鼠标滚轮 或者在我的情况
  • 从 pod minikube kubernetes 中的容器公开端口

    我是 K8s 新手 我将尝试使用以下命令在 pod 中运行 2 个容器的 minikube kubectl apply f deployment yaml 和这个deployment yml apiVersion v1 kind Pod m
  • 将图像从图像控件存储到 StorageFile

    如何从 Windows 应用商店应用程序中的图像控件将图像存储到 StorageFile 中 我正在使用以下链接 但这对我来说没有用 StorageFile file await StorageFile CreateStreamedFile
  • 当 Perl 内存不足时,是否有标准的行为方式?

    Perl 解释器 又名 perl 在内存不足时是否有标准的行为方式 是否以任何方式记录 指定 以某种统一的方式编码 我对任何表示为正在运行的 Perl 代码契约的标准特别感兴趣 例如 将die叫做 将要END块被执行 ETC 我对这两个 理