gpt4 book ai didi

c - 在Linux(RedHat)中,C函数malloc_stats()与/proc//stat常驻内存大小相比显示不同的值

转载 作者:行者123 更新时间:2023-12-03 09:56:02 26 4
gpt4 key购买 nike

例如
对于在Redhat Linux中运行的进程
按照/proc/{pid}/stat的常驻页面*页面大小=> 30 GB

按照malloc_stats() => 2.5 GB

知道为什么会这样吗?

Arena 0:
system bytes = 465162240
in use bytes = 465037200
Arena 1:
system bytes = 1003520
in use bytes = 980656
Arena 2:
system bytes = 8065024
in use bytes = 7771728
Arena 3:
system bytes = 2278395904
in use bytes = 2276584320
Arena 4:
system bytes = 1482752
in use bytes = 1236112
Arena 5:
system bytes = 1482752
in use bytes = 1235440
Arena 6:
system bytes = 1482752
in use bytes = 1240512
Total (incl. mmap):
system bytes = 2782,699,520
in use bytes = 2779710544
max mmap regions = 9
max mmap bytes = 25624576

最佳答案

malloc_stats与用户区域中malloc的实现相关。
pmap/proc/self/stat与虚拟地址空间及其在内核 Realm 的感知有关,它不仅随mmap调用的malloc发生变化,而且随mmap的其他调用(包括与动态链接程序(ld.so)相关的调用)发生变化。

阅读一个好的textbook on operating systems。另请参见https://linuxatemyram.com/proc(5)mmap(2)execve(2)malloc(3)

关于c - 在Linux(RedHat)中,C函数malloc_stats()与/proc/<pid>/stat常驻内存大小相比显示不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61520591/

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