最近有了一點新的體驗,看到電腦記憶體占用率到了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秒就可以全部載入到記憶體裏
改進後的程式只要十幾分鐘就可以跑完