【问题标题】:MATLAB not throwing OutOfMemoryExceptions or Maximum variable size errorsMATLAB 不抛出 OutOfMemoryExceptions 或最大可变大小错误
【发布时间】:2011-02-16 23:10:21
【问题描述】:

在以前的 MATLAB (7.6) 版本中,我曾经遇到过 OutOfMemoryErrors,我认为这很烦人。但是自从我升级到 7.11 后,由于某种原因,它不再抛出错误了。

这意味着当我不小心尝试创建一个太大的变量时,MATLAB shell 将尝试创建该变量并使我的机器停止运行。

我真的很想抛出这些错误,这样我就可以优雅地退出或调试我的代码,但我无法在任何地方找到解决方案。

可能有用的细节: 我在 64 位机器上使用 OSX 10.5,内存为 4GB。

在 MATLAB 7.6 中:

$ rand(50000);
??? Error using ==> rand
Maximum variable size allowed by the program is exceeded.

在 MATLAB 7.11 中:

$ rand(50000);
(hang)

【问题讨论】:

  • 好问题。傲慢似乎总是抓住我,我最终创建了使 matlab 崩溃的巨大矩阵。
  • 7.6-->7.11 好像是降级而不是升级?
  • @albanx: 6->11 是升级。这不是 7.1.1

标签: matlab out-of-memory


【解决方案1】:

在 7.6 和 7.11 版本之间,MATLAB 的 Macintosh 版本从 32 位应用程序切换到 64 位应用程序。所以现在不是用完地址空间,而是 MATLAB 抖动。

【讨论】:

  • 这似乎是最有可能的答案。我不认为有办法人为地抑制 MATLAB 中的地址空间量?
  • 不在 MATLAB 中(通常人们想要更多的地址空间!),不幸的是,看起来 Mac OS X 也不支持限制可用内存的 limit/ulimit 机制。
【解决方案2】:

Matlab 没有挂起。这只是分页,这需要永远。尝试分配一个大数组,打开活动监视器,然后看到“虚拟内存”不断增长。

如果您减小系统上的页面文件大小,则可以避免该问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2018-07-29
    • 2016-08-24
    相关资源
    最近更新 更多