當前位置: 華文問答 > 數碼

使用記憶體超過32G(含)的電腦是種怎樣的體驗?

2019-11-21數碼

最近有了一點新的體驗,看到電腦記憶體占用率到了80%,就覺得是不是程式開的太多了,應該關掉一點釋放記憶體,然後看了一下剩余記憶體18G,哦,那就沒事了

其他答主似乎都是公款消費,自費超過32G的似乎不多……

自己家裏的電腦

96G記憶體

TR 2920X 12核24執行緒

電腦配置

自己業余寫了一個專案賺外快,因為架構需要大量的電腦,於是用Hyper-V 跑生產

這台電腦上除了這些VM,我還用來做開發(python為主)

玩WoWS

看電影

最初配置32G記憶體,沒想到不到一個星期就發現不夠用,但是自己傻逼買了個4插槽的主機板又配了8G*4的記憶體條,於是只好重新買了16G*4的記憶體條回來升級

前幾個月因為業務需要開更多的虛擬機器,於是乎64G也不夠用了,只好又買了2根32G記憶體回來

所以……巴黎地區出64G記憶體,價格好商量 >_<!

這個故事教育我們買記憶體條不要買8G的,最好一步到位

這個故事教育我們買記憶體條不要買8G的,最好一步到位

這個故事教育我們買記憶體條不要買8G的,最好一步到位

至於體驗:

古人雲:要想程式跑得快,數據全部進記憶體

有一次要寫個程式處理一個12GB的檔

先寫了一個傳統程式

f = fopen () line = f . readline while line : line = f . readline () my_method ( line ) close ( f )

這樣浪費大量時間在硬碟IO上面,python底層的C程式碼呼叫的windows API應該是以32M的緩存去硬碟上讀取數據的,即使用的是SSD,跑一遍要好幾個小時

然後反應過來了,我TM記憶體大啊!數據全部進記憶體啊!

於是乎

f = fopen () data = f . readlines () close ( f ) for line in data : my_method ( line )

M.2 SSD的連續數據讀取速度在2G/s以上,所以12G數據只要不到10秒就可以全部載入到記憶體裏

改進後的程式只要十幾分鐘就可以跑完