Linux elf .bss节的内存成本

问题描述 投票:0回答:1
#include <string.h>
#include <stdio.h>
typedef struct {
    char a[1024];
} AA;

static AA a[102400];
int main(int argc, char **argv)
{
    getchar();
    memset(a, 0, sizeof(a)/2);
    getchar();
}

我试图了解elf .bss的内存成本。以上是我的测试程序。程序启动时,它只使用很少的内存,因此我认为静态Aa a [102400]根本没有映射。当我按Enter键使其成为阵列的一半时,将消耗50M内存。这是否意味着linux内核支持动态映射.bss节,所以我不需要关心未使用的全局/静态可变项的内存浪费?

linux memory elf
1个回答
0
投票

[.bss部分被映射为写时复制到零页。

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