【问题标题】:Is there a Threshold for "Out of Memory" error?“内存不足”错误是否有阈值?
【发布时间】:2014-12-28 18:26:00
【问题描述】:

当我使用一些代码时,

 x = randi(100,[1000 1000000]);

我收到Out of Memory 错误。

但是当我有的时候,

x = randi(100,[1000 500000]);

我没有收到任何错误,但我的笔记本电脑几乎停止工作!

这有时会花费我 force shutdown

我真的更喜欢 Out of Memory 错误!

Q1+Q2:该错误是否有阈值,我可以调整

Q3:或者任何其他建议(可能限制 MATLAB 可以访问的内存)?

谢谢,

【问题讨论】:

    标签: matlab memory memory-management out-of-memory


    【解决方案1】:

    A1:是的,记忆就是门槛

    虽然内存是一个限制,但您对 “几乎停止工作” 的观察与计算所有 500,000,000 个值的任务相关的 CPU 密集型处理有关元素并存储它们。正如您在 A3 中看到的那样,此尝试仅需要 4GB RAM 存储来处理 x

    A2:是的。添加更多内存以调整阈值

    如果您的问题需要更大的对象,请获得更多空间来存储它,如果您的 CPU 密集型观察很重要,请从分布式处理(无论是云还是网格)中获取计算以卸载您的本地主机。

    A3:是的。使用 whos 检查消耗的 MATLAB 内存

    mCloud:1> x = randi( 100, [1000 500000] );
    mCloud:2> whos
    Variables in the current scope:
    
       Attr Name        Size                     Bytes  Class
       ==== ====        ====                     =====  =====
            ans         1x70                       757  cell
            x        1000x500000            4000000000  double
    
    Total is 500000070 elements using 4000000757 bytes
    
    mCloud:3>  
    

    【讨论】:

    • 感谢您的回答。假设在4G 中我的内存已满,当MATLAB 中的所有变量都大于3G 时,我可以调整以产生错误吗?因为即使我使用更多内存,也有可能在某些点上挂起。
    • 试试 help whos Kamtal
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2014-10-21
    相关资源
    最近更新 更多