电脑频繁 OOM 报错,用 Mem Reduct 定期清理内存发现只能清理物理内存,但是虚拟内存纹丝不动,所以甚至会出现这样的情况,物理内存占用 70%,但是虚拟内存占用 99%,这种时候依旧是几乎所有的软件都崩溃报错。
就像下面这种情况:
但是我一直有个不理解的情况,虚拟内存占用会从一个很低的值开始,逐渐增长,这其中即使我重启操作系统,再次启动过后开机虚拟内存的值也会保持在开机前的值,直到他一直跑到 99%,这种时候再重启就有效果了,虚拟内存会回到一个很低的值。
比如下面这种情况:
所以有什么办法可以让我随时都可以释放虚拟内存呢?这其中我最多的问题还是虚拟内存占用接近 90%的时候我的使用体验就已经很糟糕了,会频繁出现 OOM 报错崩溃,但是只有到了 99%的时候才能重启释放,否则重启也好 Mem Reduct 清理也好都是没用的。
1
yyzh 346 天前 via Android
16g 笔记本还用了集成显卡?
啥程序要用那么恐怖的内存量啊?还是那个程序有内存泄露么? |
2
aru 346 天前
你需要找出占用内存的程序
打开资源监视器,看是什么程序用了内存 |
3
DOLLOR 346 天前
楼主应该打开任务管理器,看内存一栏里,“已提交”是怎样的数值?(类似 16/32 GB 这样的),这个才是真实的内存占用情况。
|
4
wzcloud 346 天前 via iPhone
虚拟内存可以禁用;不过 oom 和虚拟内存关系不大吧
|
5
ysc3839 346 天前 via Android
正确解法是增大虚拟内存。这些“清理内存”的程序只是把物理内存移动到虚拟内存里,没有太大意义,当程序需要使用时又要把虚拟内存中的数据移动到物理内存,影响性能以及硬盘寿命,建议不要使用。
|
6
bearqq 345 天前
正确的解法是增加内存……
开啥了能这么耗内存?有软件 bug 内存泄露? |
7
keymao 345 天前
开发机现在还用 16G ,你的内存注定用的是谨小慎微,如果是你的主要开发用设备,内存 32G 起。
顺带一提,你的虚拟内存是怎么能跑满的? |
8
xtreme1 345 天前
这种"清理内存"程序大概率就是调一下 setProcessWorkingSetSize
|
9
shyangs 345 天前
Node.js, VSCode, Edge, Firefox 你相當於開了四個瀏覽器.
這個時候要控制自己不要開超過 3 個瀏覽器分頁. 以及少裝插件/外掛. |
10
2han9wen71an 345 天前
我也遇到过,我一般是一周重启一次,重启后自动解决
|
11
xuanbg 345 天前
这是自己写的代码有内存泄漏吧?
|
12
sujin190 345 天前
不会以为这种清理内存的程序不是通过杀进程的话就真的能清理内存吧,内存泄漏还是要程序自己解决的,程序正常改加内存就加内存呗
|
13
JackCh3ng 345 天前
作为程序员,今天第一次听说 pc 还要自己手动清理内存。电脑卡了,重启就是了。oom 是程序的问题关内存屁事。
|
14
JackCh3ng 345 天前
这个虚拟内存不懂不要瞎设,直接用系统推荐配置。解决 oom 先增大程序自身的内存参数,这个参数要小于机器本身的内存,加到最大还不行,就要加物理内存,如果内存占用和预期偏离太大,就要看程序是不是内存泄漏了。
另外,不要把虚拟内存当作内存使用,它本质上是硬盘,速度和内存比不了,是一种讨巧的提高使用体验的技术。“虚拟内存”的翻译有一定的误解,它应该叫内存置换区,只是将物理内存里暂时用不到的数据置换到磁盘上,为正在进行的作业腾出空间,但是你实际工作的内存还是物理内存那么大,如果你的程序要求 16GB 内存,你物理内存只有 14GB ,那么设再多虚拟内存都没用。 |
15
Levox 345 天前
同有个 16G 本子,我直接关了 pagefile 。等到 OOM 甚至干掉显卡驱动了,就重启了,现在的应用内存铺张浪费太严重,特别是浏览器……
|
16
liyafe1997 345 天前
虚拟内存按默认设置理论上不会爆啊,要么你硬盘满了,要么你手动限制了虚拟内存最大值
|
17
Ovrase 343 天前
我也是 win11 16G 内存,最近突然出现和你一样的问题,最近也没有新增什么软件,虚拟内存是系统自己管理的,它会一直增大,直到崩溃
|
18
Ovrase 343 天前
比较奇怪的是物理内存占用仅 60%作用
|
21
Cambra1n 302 天前
同样的问题,物理内存占用不高,提交的虚拟内存会在几天内持续增长到 60g ,造成浏览器等程序 oom 崩溃。
从事件查看器中看到有虚拟内存信息,“Windows 成功诊断出虚拟内存不足的情况。以下程序使用了大部分虚拟内存: ” 累计也只有几 G 。 |