gpt4 book ai didi

memory-management - RAM 在 lowmem 和 highmem 之间分配

转载 作者:行者123 更新时间:2023-12-04 07:44:03 28 4
gpt4 key购买 nike

我比较了运行 Android Gingerbread 和 Ice Cream Sandwich (氰基 CM9)的 galaxys2(arm exynos4)设备的/proc/meminfo。我注意到内核在低内存和高内存之间以不同方式分割内存:

对于 ICS/CM9(3.0 内核):

cat /proc/meminfo:

MemTotal: 843624 kB
MemFree: 68720 kB
Buffers: 1532 kB
Cached: 115720 kB
SwapCached: 0 kB
Active: 487780 kB
Inactive: 64524 kB
Active(anon): 436316 kB
Inactive(anon): 1764 kB
Active(file): 51464 kB
Inactive(file): 62760 kB
Unevictable: 748 kB
Mlocked: 0 kB
**HighTotal: 278528 kB**
HighFree: 23780 kB
**LowTotal: 565096 kB**
LowFree: 44940 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 4 kB
Writeback: 0 kB
AnonPages: 435848 kB
Mapped: 45364 kB
Shmem: 2276 kB
Slab: 37996 kB
SReclaimable: 10028 kB
SUnreclaim: 27968 kB
KernelStack: 10064 kB
PageTables: 16688 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 421812 kB
Committed_AS: 8549052 kB
VmallocTotal: 188416 kB
VmallocUsed: 104480 kB
VmallocChunk: 26500 kB

对于 GB(2.6 内核):

cat /proc/meminfo:

MemTotal: 856360 kB
MemFree: 22264 kB
Buffers: 57000 kB
Cached: 337320 kB
SwapCached: 0 kB
Active: 339064 kB
Inactive: 379148 kB
Active(anon): 212928 kB
Inactive(anon): 112964 kB
Active(file): 126136 kB
Inactive(file): 266184 kB
Unevictable: 396 kB
Mlocked: 0 kB
**HighTotal: 462848 kB**
HighFree: 1392 kB
**LowTotal: 393512 kB**
LowFree: 20872 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 4 kB
Writeback: 0 kB
AnonPages: 324312 kB
Mapped: 97092 kB
Shmem: 1580 kB
Slab: 29160 kB
SReclaimable: 13924 kB
SUnreclaim: 15236 kB
KernelStack: 8352 kB
PageTables: 23828 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 428180 kB
Committed_AS: 4001404 kB
VmallocTotal: 196608 kB
VmallocUsed: 104804 kB
VmallocChunk: 57092 kB

我注意到在 3.0 内核上内存压力很明显,内存不足 killer 被频繁调用。

我有两个问题:

  1. 在 3.0 布局中(更少的 highmem 更多的 lowmem)应用程序是否有更少的可用内存?这可以解释高内存压力吗?
  2. 是否可以更改 3.0 内核中的布局以使其更类似于 2.6 布局(即更多的 highmem 更少的 lowmem)?

最佳答案

据我所知,高低内存的划分是内核的编译参数,因此应该可以(在编译时)进行不同的设置。我不知道为什么在您的示例中将这么多内容分配给高端内存区域。在具有 1 GB 物理 RAM 的 x86 上,低端内存约为 896 MB,高端内存约为 128 MB。

Android 似乎需要比典型的 32 位 x86 桌面更高的内存,我不知道 Android 回声系统的哪些功能会带来这样的要求,所以希望其他人可以告诉你。

您可以尝试调查内存区域,以了解 Android ICS 和 GB 之间的区别。只需执行 cat/proc/zoneinfo。你可以找到一些背景 information on these zones in this article ,尽管注意它是针对 x86 arch 描述的。

关于memory-management - RAM 在 lowmem 和 highmem 之间分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15321050/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com