【问题标题】:How can I Increase memory the memory limit for Strawberry perl on Windows?如何在 Windows 上增加内存草莓 perl 的内存限制?
【发布时间】:2014-05-07 04:19:26
【问题描述】:

我在 Windows 上安装了 Strawberry perl x64,但它似乎有 256 MB 的内存限制。我的 perl 脚本合理地使用了大约 500MB 的内存(对语言语料库进行了一些计算),但是在消耗了 256MB 之后,perl 以消息终止:

Out of memory during request for 4088 bytes, total sbrk() is 267954176 bytes!

可以在某个地方增加限制吗?我的机器有 18GB 内存,在 x64 平台上使用应该没有问题,但我找不到配置它的位置。

感谢您的帮助。

【问题讨论】:

  • 这很奇怪,perl 本身没有这样的限制。外部资源限制是否有效?
  • 你是如何运行 Perl 的?你在使用 Cygwin 吗?直接从 Windows 命令窗口运行的草莓 Perl 有超过 256MB 的限制
  • sbrk() 是增加分配给程序的总内存的函数。因此,您的程序在尝试分配额外的 256MB 时失败,而不是尝试分配前 256MB。
  • @mob:消息说它正在尝试分配另一个已经分配了 256KB 的 4KB。但是sbrk是一个Unix系统调用,在Windows上不存在所以我很困惑。
  • 好吧,1) 我查看了任务管理器,无论 sbrk() 是什么意思,perl 实际上在消耗 256MB 内存时崩溃了。

标签: perl out-of-memory strawberry-perl


【解决方案1】:

您可以通过在 Windows 上设置程序的优先级来允许程序使用更多内存等。

Ctrl+shift+Esc -> 任务栏 -> 进程 -> YourProgramName.exe-> 右键单击​​(在程序上)-> 设置优先级 -> 选择性能级别

我建议高性能。

这告诉 Windows 应该为哪些程序分配内存。

【讨论】:

  • 它没有帮助,但多亏了你,我发现我不小心执行了另一个 32 位版本的 perl,它位于我的 windows 路径上。所以问题暂时解决了,64位草莓perl不会在内存不足的情况下崩溃,但我还是很好奇是否可以配置限制。
  • @amik:请将您的解决方案作为答案发布,以便有相同问题的其他人可以看到它,并明确问题已解决。
  • 很高兴我能提供一些信息来解决您的问题。
  • 嗯,还没有“解决”,对我来说已经解决了,因为 64 位版本可以正常工作,但显然还有一些内存限制,我不知道如何配置。
【解决方案2】:

我也遇到过这个问题。我使用 32 位版本的 Perl 5.8.9 来集成多个文件,但由于内存限制它坏了。有一个有线的东西,电脑使用的内存不到60%。所以我和你有一个想法,这个 Perl 程序没有使用计算机的全部内存。

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 2022-01-03
    • 2015-11-16
    • 2023-03-22
    • 2019-06-04
    相关资源
    最近更新 更多