嵌入式Linux程序内存的占用问题?

kgduwu 2012-08-01 04:16:46
在嵌入式Linux下开发了一个控制台程序(无图形框架和图形库),发现程序内存占用比较高,不知是否正常,还有就是这么高的内存都被什么部分占用了,程序是下面的./aurostar3,内存占用达到43M左右,比例达到了72%,开发板物理内存为64M,这个内存占用情况是否正常?还有如果我要查出是哪个部分占用如此高的内存,我该如何下手?程序自己从网络上接收到重启命令会重启自己,我发指令让程序重启自己测试好多次,运行都是正常,查看占用内存情况都不会增加,没有僵尸进程。(这应该说明程序没有内存泄露)。程序使用了网络库,多线程库,信号量库等,程序中动态分配的内存应该不会超过1M以上,不知这高的内存占用谁用了?

top命令信息:

CPU: 0% usr 0% sys 0% nice 99% idle 0% io 0% irq 0% softirq
Load average: 0.02 0.03 0.00
PID PPID USER STAT VSZ %MEM %CPU COMMAND
472 447 root R 4748 8% 1% top
426 1 root S 4512 7% 0% nmbd -D
444 1 root S 44304 72% 0% ./aurostar3
428 1 root S 8200 13% 0% smbd -D
456 428 root S 8200 13% 0% smbd -D
447 1 root S 4748 8% 0% -/bin/sh
1 0 root S 2100 3% 0% init
424 1 root S 2100 3% 0% telnetd
446 1 root S 1552 3% 0% /mnt/nandflash/temp/stupid-ftpd -f stu

418 2 root SWN 0 0% 0% [jffs2_gcd_mtd1]
5 2 root SW< 0 0% 0% [khelper]
332 2 root SW< 0 0% 0% [mcp251x_wq]
2 0 root SW< 0 0% 0% [kthreadd]
3 2 root SW< 0 0% 0% [ksoftirqd/0]
4 2 root SW< 0 0% 0% [events/0]
103 2 root SW< 0 0% 0% [kblockd/0]
112 2 root SW< 0 0% 0% [ksuspend_usbd]
117 2 root SW< 0 0% 0% [khubd]
121 2 root SW< 0 0% 0% [kmmcd]
146 2 root SW 0 0% 0% [pdflush]

...全文
307 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nilite 2012-08-20
  • 打赏
  • 举报
回复
没关系,linux跟windows不一样,有多少空闲内存,它都会尽量使用,以此来提高文件读写效率。大部分空闲内存都被当作缓存来使用了。
morris88 2012-08-03
  • 打赏
  • 举报
回复
仔细检查代码,看看库函数用的是否合规?
夏天__ 2012-08-03
  • 打赏
  • 举报
回复
需要用专门的工具测试吧。
wshn13 2012-08-03
  • 打赏
  • 举报
回复
开始可以先从自己的代码入手
kgduwu 2012-08-03
  • 打赏
  • 举报
回复
折腾了半天的valgrind这个工具,在PC X86 linux下可以用,但是在我用的开发板(armv5架构,arm926ej-s)似乎不支持,网上写的它支持ARM核,只支持armv7架构,如cortex A8,谁有没有将
valgrind这个工具移植到ARMV5架构开发板的linux的经历
Linux-Torvalds 2012-08-02
  • 打赏
  • 举报
回复
这个只能看看那部分用了比较多的malloc之类的函数。

貌似valgrind这个工具可以分析,但是没有尝试过。

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧