看板 Soft_Job 關於我們 聯絡資訊
因為在計算上會需要用到很大的記憶體 但是發現自己電腦的8G ram 常常沒跑滿 大概都跑到5G左右就會出現 memory error 現在是用python 3.4 32位元 如果改成64位元版本似乎能夠用上更多記憶體? 但是查了一下發現有些python的library只有32位元版本 請問各位前輩 如果在這種情況下 我雖安裝了python 64位元版 但是我的library卻參雜32位元版 我能用的記憶體天花板是不是就是32位元版的 而不是64位元 感謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.173.173 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1443571057.A.336.html ※ 編輯: famayo (59.127.173.173), 09/30/2015 08:01:14
david81915: 有錢好任性 09/30 09:21
Masakiad: 笑了... 09/30 09:57
qrtt1: 你系統不跑 python 時要吃多少啊@@? 要留點活路給別人啊... 09/30 10:08
famayo: 原本系統吃4G 跑python時整個電腦的RAM會吃到5G 09/30 10:19
Deltaguita: 是不是要考慮調整你的程式碼,怎麽會用那麼多 09/30 10:44
Deltaguita: 你載入很多影響 09/30 10:45
famayo: 主要是要把1gb的數據全部載入numpy array跟pandas array 09/30 10:49
famayo: 然後作一些計算轉換 常常就卡在陣列變換或讀取的地方 09/30 10:49
phoenixrace: 差16g ram 09/30 11:12
qrtt1: 所以看起來你的 limit 是 2G 啊 09/30 12:12
azureblaze: 還有fragmentation的問題 09/30 12:27
carlcarl: 一定要一次讀1GB出來嗎? 09/30 13:24
realmeat: 為啥不考慮平行處理 09/30 14:12
robler: 平行處理和記憶體限制的關聯在哪 09/30 15:09
tomtang0406: 32bit程式單一程序記憶體使用的上限就是4GB, 但因為 09/30 15:26
tomtang0406: 這4GB還要切割2GB kernel mode 給OS使用,你 user mo 09/30 15:26
tomtang0406: de 的記憶體只剩下2GB,而且你用array在操作是privat 09/30 15:26
tomtang0406: e bytes,無法被swap,很快就遇到天險了... 09/30 15:26
realmeat: 說錯, 平行處理(x)應該是分散運算才對 09/30 17:15
famayo: 關於平行的技術都還沒點QQ 想說如果可以用64bit先解最好 09/30 17:37
famayo: 所以如果我中間有一個library是32bit 即使其他事64bit 09/30 17:38
famayo: 這樣也等於只能用到2G的極限嗎? 09/30 17:39
famayo: 如果不平行 一定要一次讀 因為這是off-line learning 09/30 17:39
tomtang0406: 是的,一個32bit的老鼠屎就會壞了整鍋粥 09/30 17:46
famayo: 感謝大大解惑啊 我來開始裝64bit 09/30 17:47
tomtang0406: 想想64bit的程式要傳遞一個參數指標到32bit lib 內 09/30 17:51
tomtang0406: 的function, 但這個lib吃不下來怎麼辦?當然只能降 09/30 17:51
tomtang0406: 等用兩邊都能解讀的記憶體指標 09/30 17:51
ug945: 8G不夠換16G再不夠換32G再不夠分散式運算 09/30 18:06
qrtt1: 適當的 sampling 來減少資量啊qq 09/30 21:01
berton1679: 運算龐大成這樣還用python你新手? 10/01 21:10
famayo: 換64bit後已可執行 10/02 03:17