Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试符号是否加载到linux上的内存中?_Linux - Fatal编程技术网

调试符号是否加载到linux上的内存中?

调试符号是否加载到linux上的内存中?,linux,Linux,从可执行文件(或共享库)中剥离调试符号是否会减少内存使用量?(我知道它减少了磁盘文件的大小——我感兴趣的是实际使用的RAM) 德雷珀纸(http://www.akkadia.org/drepper/dsohowto.pdf)第13页说“正常符号表在运行时不使用,因此不需要去掉二进制” 剥离的手册页上写着“剥离的二进制文件(它)将在RAM中占用更少的空间” 根据一些快速测试,看起来Drepper是正确的(这并不奇怪),因此strip的手册页是错误的 有人能帮忙确认/否认吗 蒂亚 在使用readah

从可执行文件(或共享库)中剥离调试符号是否会减少内存使用量?(我知道它减少了磁盘文件的大小——我感兴趣的是实际使用的RAM)

德雷珀纸(http://www.akkadia.org/drepper/dsohowto.pdf)第13页说“正常符号表在运行时不使用,因此不需要去掉二进制”

剥离的手册页上写着“剥离的二进制文件(它)将在RAM中占用更少的空间”

根据一些快速测试,看起来Drepper是正确的(这并不奇怪),因此strip的手册页是错误的

有人能帮忙确认/否认吗


蒂亚

在使用readahead加速启动和程序启动的系统上,调试符号确实会浪费文件缓存中的内存。

在使用readahead加速启动和程序启动的系统上,调试符号确实会浪费文件缓存中的内存。

我倾向于查看/proc/[pidno]/两种格式的地图cases@Chris斯特拉顿:来自映射的页面是按需加载的,所以
映射
只告诉您地址空间的使用情况,而不是实际的核心使用情况。首先,如果没有映射,那么它不太可能占用RAM。第二,我认为文件的哪些部分可以被加载是一个问题,这个问题的答案比在任何给定的时刻可以看到哪些页面被加载到实际的物理ram中要确定得多,因为这取决于执行它的系统的细节。但是如果你想尝试以轶事的方式确定在任何给定的时刻实际驻留的是什么,/proc/pid/smap应该这样做,我倾向于同时查看/proc/[pidno]/mapscases@Chris斯特拉顿:映射中的页面是按需加载的,所以
maps
只告诉您地址空间的使用情况,而不是实际的核心使用情况。首先,如果它没有被映射,那么它不太可能最终占用RAM。第二,我认为文件的哪些部分可以被加载是一个问题,这个问题的答案比在任何给定的时刻可以看到哪些页面被加载到实际的物理ram中要确定得多,因为这取决于执行它的系统的细节。但是,如果您想尝试以轶事的方式确定在任何给定时刻实际驻留的内容,/proc/pid/smap应该这样做,ELF加载程序似乎可以使用
madvise(MADV\u DONTNEED)
在与调试符号相对应的范围内。@caf:readahead在读取数据时仍然会浪费时间。ELF加载程序似乎可以使用
madvise(MADV\u DONTNEED)
在与调试符号相对应的范围内。@caf:readahead在读取数据时仍然会浪费时间。