นี่คือรหัสของฉัน
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.cat
...
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' แต่ฉันต้องการการเริ่มต้นที่ชัดเจน
ช่วยฉันด้วย ขอบคุณ