最近有了一点新的体验,看到电脑内存占用率到了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秒就可以全部加载到内存里
改进后的程序只要十几分钟就可以跑完