某安卓手机物理内存1GB,但一个程序运行时需要2GB的地址空间,请问程序能否运行?为什么?
时间: 2023-09-26 12:15:08 浏览: 40
这个程序不可能在1GB的物理内存中运行,因为物理内存是实际的硬件资源,它的大小是固定的,无法被程序所扩展。当一个程序需要2GB的地址空间时,它需要在内存中分配2GB的虚拟地址空间,而1GB的物理内存无法容纳这2GB的虚拟地址空间,因此程序无法运行。可能会出现内存分页或内存交换的情况,但这样会导致程序运行缓慢或者崩溃。
相关问题
假设服务一千万个文件,每个文件1GB,Master中存储的元数据大概占用多少内存?
假设每个文件都需要一些元数据,比如文件名、创建时间、访问权限、块列表等等,那么在Master中存储这些元数据所需要的内存大小,可以通过以下计算得出:
假设每个文件需要的元数据大小为100KB(这只是一个假设的数字,实际情况可能会有所不同),那么一千万个文件需要的元数据总大小为 100KB * 10000000 = 1TB。
因此,在这种情况下,Master中存储的元数据大概需要占用1TB的内存。当然,实际情况中还需要考虑元数据的存储方式、压缩方式等因素,这可能会对内存占用量产生一定的影响。
linux 将大页内存由2MB修改为1GB
在 Linux 中,大页内存默认情况下是 2MB 的大小,但是也可以通过一些配置修改为 1GB 的大小。
首先,需要确认系统的 CPU 和内存支持 1GB 大页内存。可以使用以下命令来检查:
```
grep -E "(pdpe1gb|1g-pages)" /proc/cpuinfo
```
如果输出包含 "pdpe1gb" 或 "1g-pages",则表示 CPU 和内存支持 1GB 大页内存。
接下来,需要修改内核参数来启用 1GB 大页内存。可以修改 /etc/default/grub 文件,添加以下参数:
```
default_hugepagesz=1G hugepagesz=1G hugepages=<number of 1GB pages>
```
其中,\<number of 1GB pages\> 是你希望分配的 1GB 大页内存的数量。
修改完后,需要运行以下命令更新 grub 配置:
```
sudo update-grub
```
最后,重新启动系统使得新的内核参数生效。
注意,将大页内存大小修改为 1GB 可能会增加内存碎片,并且需要更多的物理内存来存储大页表。因此,建议仅在需要大量内存的应用程序中使用 1GB 大页内存。