mac 上 vscode 虚拟内存问题

2021-12-07 17:03:25 +08:00
 Windy00

大家的虚拟内存占用都这么大的嘛?😂

2850 次点击
所在节点    Visual Studio Code
10 条回复
1419co1in
2021-12-07 17:14:07 +08:00
deplivesb
2021-12-07 17:15:24 +08:00
这个东西看看就好,而且貌似 VM 被压缩才是谁用的虚拟内存,这个是啥我也不知道
我这还有个更大的
![活动监视器-kernel_task _0_-20211207171414.png]( https://s2.loli.net/2021/12/07/kDtErN7SUMOpPB3.png)
EthanLau
2021-12-07 17:23:05 +08:00
刚看了下, 确实很大
https://sm.ms/image/9cTDKglkFZLoYHA
kidonng
2021-12-07 17:45:47 +08:00
Unix 上的“虚拟内存”不是你以为的那个虚拟内存,后者一般叫“交换空间”( Swap )。这个“虚拟内存”是程序声明自己要多少系统就给多少的,但程序可以不实际使用。
f64by
2021-12-07 18:19:24 +08:00
我记得虚拟内存大小=程序分配的内存最高地址-最低地址吧,这个数值没有什么实际意义
我刚看了下,我系统里哪个进程的这个值都不低于 390G
12101111
2021-12-07 19:59:44 +08:00
虚拟内存是指的带 MMU 的系统用户态所获取的虚拟地址空间的大小,在使用 overcommit 之后,如果程序获得了一页内存,但从来没有访问过,那么这页内存不会真正的创建出来的,只有缺页中断发生后,这页内存才会真正映射到物理内存里。
另一方面,swap 才是将已经映射到物理内存的匿名页移动到硬盘上,然后取消该匿名页的映射。
wangyu17455
2021-12-08 03:38:13 +08:00
这个就相当于 linux 的 top 里的 virt ,new int[100]会导致 virt 变大 100*sizeof(int),但是不真占内存,赋值之后才占内存
LewisHorse
2021-12-08 03:56:15 +08:00
Monterey 内存问题很严重好像,不止 vscode 我打 FaceTime 能占 20G 直接卡死
Kininaru
2021-12-08 17:33:11 +08:00
前几天刚看完《现代操作系统》的内存管理,我理解这个是地址空间,程序能在这个空间内寻址,系统包分配。即使程序不申请,虚拟内存还是会有那么大。以前用 macOS 的时候,所有程序的虚拟内存都是 4G 起步,哪怕只用了几 k...

拿硬盘当内存的那技术应该是叫“交换分区”。我电脑关掉了交换分区,还是有虚拟内存,并且和物理内存一样大。
Kininaru
2021-12-08 17:36:02 +08:00
#9 虚拟内存,程序能合法地申请这么多内存,能合法地在这里面寻址,系统包分配,不代表程序已经申请了这么多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/820670

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX