运行Go程序虚拟内存的Linux嵌入式设备超出了物理内存,为什么? [重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

golang1.11可以编译MIPS程序,但是运行时的虚拟内存达到480MB,但是物理内存只有128MB。这是怎么发生的?对于每个Go程序都是如此。

go mips embedded-linux
1个回答
0
投票

这只是程序使用的地址空间量。地址空间利用率根本不会转化为内存消耗。从技术上讲,可以在整个地址空间上映射相同的内存区域。即您实际上可能只使用一页内存(约4kB),并在137438953472kB的用户区地址空间上全部涂上内存,您拥有当前可用的64位CPU(如果使用32位系统,则为2097152kB)。

© www.soinside.com 2019 - 2024. All rights reserved.