询问 VIRT 与 SWAP 的问题

2015-10-28 20:56:15 +08:00
 Walleve0
![alt text]( "Title")
求问 为什么 SWAP 为 0 , VIRT 值还能那么大?
2297 次点击
所在节点    Linux
4 条回复
owwlo
2015-10-28 23:41:32 +08:00
&> man top 得到的解答:

o: VIRT -- Virtual Image (kb)
The total amount of virtual memory used by the task. It
includes all code, data and shared libraries plus pages that
have been swapped out and pages that have been mapped but not
used.
ryd994
2015-10-29 00:02:04 +08:00
linux 下 virt 和 windows 的虚拟内存不是一回事。
只是代表用了多少虚地址地址空间而已。包括所有用的内存、 swap 、 mmap 等
https://en.wikipedia.org/wiki/Page_table
一般 virt 大小和性能之间没有必然联系
如果你 mmap 一个超大的文件,即使这个文件并不在内存或 swap ,也计 virt
mind3x
2015-10-29 00:03:05 +08:00
打个不那么严格的比方:

你有 100 页白纸;
你要写一本书,初步准备弄个 1000 页;
你决定先写这本书的第 10 到第 19 页,和第 510 到 519 页;
你于是拿出 20 页白纸,在上面画小人,还编上了页码 10-19 和 510-519 。

这里的 1000 页就是 VIRT ;
20 页领出来的白纸是 RES ;
你领出来的 20 页里某一页画了一头猪,你觉得完全可以用到你的另一本书里,这一页就是 SHR 。

后来你突然觉得不想写 1000 页这么多了,只想写 50 页,页码也重编过,那你新的 VIRT 就是 50 。
Walleve0
2015-10-29 13:46:10 +08:00
明白了,谢谢各位~! O(∩_∩)O~

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

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

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

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

© 2021 V2EX