linux – 内存使用:程序分配太多内存
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 内存使用:程序分配太多内存,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1073字,纯文字阅读大概需要2分钟。
内容图文
![linux – 内存使用:程序分配太多内存](/upload/InfoBanner/zyjiaocheng/971/dd119d1753c94aa2b7703c87cd5f5b25.jpg)
我用C编写了一个用于Ubuntu Server(64位)的程序,该程序应该全天候运行.服务器有2GB内存,但显然我的程序分配了太多的内存.
这是大约2小时后的顶部输出
top - 13:35:57 up 1:39, 1 user, load average: 0.15, 0.13, 0.08
Tasks: 68 total, 2 running, 66 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.9 us, 5.7 sy, 0.0 ni, 92.3 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 2050048 total, 540852 used, 1509196 free, 34872 buffers
KiB Swap: 1509372 total, 0 used, 1509372 free. 93060 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
902 root 20 0 1019896 364920 4492 S 13.1 17.8 13:07.03 Bether
你怎么看我的代码已经消耗了17.8%的内存.在某些时候,服务器将崩溃,因为它没有内存.
我的问题是该程序不应该这样做,但我无法找到内存分配的位置,而不是免费的.是否有工具,甚至可能在gdb内部,找出程序分配最多内存的位置?
提前致谢!
解决方法:
查看Valgrind,它应该在Ubuntu存储库中.它可以为您提供有关C程序中内存使用情况的详细信息.有点像内存使用的调试器.
valgrind –tool = memcheck< your_app> < your_apps_params>
另请参阅ccmalloc,NJAMD,LeakTracer
内容总结
以上是互联网集市为您收集整理的linux – 内存使用:程序分配太多内存全部内容,希望文章能够帮你解决linux – 内存使用:程序分配太多内存所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。