【发布时间】:2016-02-19 18:02:59
【问题描述】:
这是我的代码
struct test oops[4][2][3][40960]; // global struct (maybe .data section)
...
{
...
//memset(oops, 0, sizeof(struct test) * 40960 * 3 * 2 * 4);
...
}
有问题。
当我使用 memset 时,
cat /proc/PID/smaps
...
Size: 756480 kB
Rss: 721208 kB
Pss: 721208 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 721208 kB
Referenced: 361252 kB
Anonymous: 721208 kB
AnonHugePages: 6144 kB
Swap: 35272 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
...
但是,不要使用 memset
Size: 756480 kB
Rss: 2048 kB
Pss: 2048 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 2048 kB
Referenced: 2048 kB
Anonymous: 2048 kB
AnonHugePages: 2048 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
为什么 memset 使用 RSS?
Pss、Private_dirty、Referenced、Anonymous 是什么意思?
全局结构可能设置为“0”,但我想显式初始化。
帮帮我,谢谢。
【问题讨论】: