2017-04-13 81 views
0

我使用的一些代碼創建的矩陣大於RAM。我的第一個想法是通過修改當前的矩陣來使用pytables來使用pytables。但是編碼會很痛苦(我使用的代碼是開源的,通過跟蹤矩陣的每一次使用和其他相關的編碼原因,進行修改是一個真正的痛苦)。但是做了一些小小的研究,我發現那些說python實際上使用虛擬內存的材料。所以如果我有一個非常大的虛擬內存,比如1TB,那麼我的程序就不用擔心會出現「內存不足錯誤」。順便說一下,我使用的是Ubuntu。我的擔心是,使用非常大的虛擬內存來解決我的問題比使用pytables慢?我正在使用python2.7Pytables vs虛擬內存

回答

0

操作系統實現虛擬內存。虛擬內存系統上的所有內容都使用虛擬內存。

虛擬內存可以讓你的程序不是可用,但有限制訪問更多的物理內存:

  1. 進程的虛擬地址範圍
  2. 系統參數
  3. 過程配額
  4. 頁面文件空間

對於足夠大的矩陣,您可以超出任何這些矩陣。

+0

user3344003感謝您的回答,它給了我一些見解。但是你的回答並沒有解決關於性能問題的虛擬內存和pytables的比較。 – eddys

+0

如果您的操作系統使用虛擬內存,您將獲得虛擬內存。這不是你打開和關閉的東西。 – user3344003

+0

user3344003,好的,讓我再說一遍。出於性能原因,哪一個是可取的。 (1)使用100GB的RAM增加虛擬內存到1TB或(2)使用100GB虛擬內存和RAM 100GB,但現在使用pytables?你看,如果我們有1TB的虛擬內存,我們不需要使用pytables。 – eddys