關於電腦內存能存多大的矩陣(MATLAB)


Matlab中“Out of memory”問題總是相當令人頭疼,比如大矩陣做運算時一不小心就會出現。其原因在於:內存在使用的過程中會不斷的分配和釋放,導致被分割成很多不連續的區域(操作系統知識)。而Matlab中矩陣的存儲是以塊(block)的形式存儲的,也就是說當Matlab在為即將存儲的矩陣划分block時,如果沒有相應大小的連續內存用於分配,就會報告“Out of Memory”----即便實際內存沒有被完全使用。

=================================================================================

使用”memory“命令查看內存使用情況,舉個例子(我的電腦能夠存下的矩陣如下):

>> memory
Maximum possible array:        4733 MB (4.963e+09 bytes) *
Memory available for all arrays:        4733 MB (4.963e+09 bytes) *
Memory used by MATLAB:         755 MB (7.916e+08 bytes)
Physical Memory (RAM):        8098 MB (8.491e+09 bytes)

  (以上是以64位8G的windows10系統為例)

 此外,由於反復分配和釋放內存會使可用的連續內存段減少,因此當 Matlab 剛剛啟動時連續內存最多,此時往往可以新建非常大的數組,這一點可以用命令“feature('memstats')”(matlab version >= 7.0)看出。如果顯示的最大連續內存段很小,但實際可用內存(非連續的)仍舊很多,則表明內存中碎片太多了。再舉個例子:

>> feature('memstats')
    Physical Memory (RAM):
        In Use:                             3969 MB (   f8188000)
        Free:                               4128 MB (  102063000)
        Total:                              8097 MB (  1fa1eb000)
    Page File (Swap space):
        In Use:                             4655 MB (  122f4a000)
        Free:                               4722 MB (  1272a1000)
        Total:                              9377 MB (  24a1eb000)
    Virtual Memory (Address Space):
        In Use:                            37110 MB (  90f64f000)
        Free:                           134180617 MB (7ff6f0991000)
        Total:                          134217727 MB (7ffffffe0000)
    Largest Contiguous Free Blocks:
         1. [at   9c4330000]           134136763 MB (7fec3bb90000)
         2. [at 7ff820d71000]               32047 MB (  7d2fdf000)
         3. [at 7ff5ffff3000]                8200 MB (  20082d000)
         4. [at    fbf30000]                 448 MB (   1c000000)
         5. [at   164030000]                 447 MB (   1bfd0000)
         6. [at   9a8330000]                 384 MB (   18000000)
         7. [at   14e710000]                 281 MB (   11920000)
         8. [at     45c0000]                 192 MB (    c000000)
         9. [at    a7ff0000]                 192 MB (    c000000)
        10. [at   140028000]                 141 MB (    8d98000)
                                            ======= ==========
                                        134179098 MB (7ff691a24000)

ans =

   1.4065e+14

  參考:http://blog.csdn.net/holybin/article/details/22965153


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM