admin管理员组文章数量:1586727
linux查看内存的几个命令基于编解码视频芯片
- free命令详解
- top命令详解
- cat /proc/cmdline命令详解
- cat /proc/media-mem命令详解
- 常见的内存泄露问题
- 常见的内存溢出问题
- 常见的内存越界
- 重复释放导致段错误的问题
free命令详解
参考[Linux上的free命令详解]
free命令可以看use内存,当malloc没被释放它会一直增加
echo 3 > /proc/sys/vm/drop_caches
//这个命令可以释放缓存
top命令详解
参考[Linux top命令小结]
top主要看idle
常用命令:top -d 3
cat /proc/cmdline命令详解
/ # cat /proc/cmdline
mem=144M earlycon console=ttyS0,115200 root=/dev/mtdblock3 rootfstype=squashfs mtdparts=spi-nor:960K(boot),64K(encrypt),3M(zImage),8704K(rootfs),2560K(res),1M(config)
//mem为系统os的内存大小
//后面boot、encrypt等是各个分区的大小
cat /proc/media-mem命令详解
/ # cat /proc/media-mem
---MMZ_USE_INFO:
total size=376832KB(368MB),used=26648KB(26MB + 24KB),remain=350184KB(341MB + 1000KB),zone_number=1,block_number=11
//用于音视频编解码的总大小total size
常见的内存泄露问题
- 一些文件描述符没有close(比如:socket)
- malloc 没有释放
- 一直创建线程、进程没释放
- 查看多个进程内存使用情况参考:https://blog.csdn/wojiaxiaohuang2014/article/details/127705648
解决的办法:
使用第三方工具,注释模块缩小范围,加打印,回退
常见的内存溢出问题
- 线程指定了栈的大小,举例:定义了一个数组超过了栈的大小就会导致溢出
- malloc一个大块内存,这块内存已经大于了可用内存
- 内存不够导致内存溢出:out of memory会有这个打印
常见的内存越界
- malloc了100个字节,往其传了110个字节的数据(可能会导致其他变量正确性,可能段错误(同样数组也是,定义64字节,传了128个字节数据))
- 解决:valgrind、静态扫描、gdb
重复释放导致段错误的问题
Program received signal SIGSEGV, Segmentation fault.
就是指指针被释放之后,再进行free就会导致重启死机
版权声明:本文标题:linux查看内存的几个命令 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727989391a1141451.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论