当前位置: 技术问答>linux和unix
请教一个内存方面的问题
来源: 互联网 发布时间:2016-09-12
本文导语: 写了一个程序,要非常频繁的接收数据,然后写入到硬盘中。 用个内存池,自己观察了这期间并没有new和delete。虚拟内存没有变,但是物理内存却涨....刚开始大概1小时1M,有时候突然1小时涨4M,有时候又连续5,6个...
写了一个程序,要非常频繁的接收数据,然后写入到硬盘中。
用个内存池,自己观察了这期间并没有new和delete。虚拟内存没有变,但是物理内存却涨....刚开始大概1小时1M,有时候突然1小时涨4M,有时候又连续5,6个小时不涨...
不知道这样是不是哪里有内存泄露啊?该怎么找啊....查看了别人的帖子用了valgrind-3.5.0.tar.bz2查看了一下并没有发现内存泄露...
希望各位朋友帮帮忙,谢谢各位。
用个内存池,自己观察了这期间并没有new和delete。虚拟内存没有变,但是物理内存却涨....刚开始大概1小时1M,有时候突然1小时涨4M,有时候又连续5,6个小时不涨...
不知道这样是不是哪里有内存泄露啊?该怎么找啊....查看了别人的帖子用了valgrind-3.5.0.tar.bz2查看了一下并没有发现内存泄露...
希望各位朋友帮帮忙,谢谢各位。
|
手工查所有的 malloc, free, new, delete。看分配的heap内存是否被释放。
用工具查应当是可以发现memory leak.
用工具查应当是可以发现memory leak.
|
不能断定是内存泄漏,也有可能是内存碎片
|
valgrind没有发现有内存泄漏,那基本是没有内存泄漏了。
Linux会尽可能利用内存做IO缓存,所以会看到内存一直在涨,如果其它进程需要分配内存时就会分配给别的进程
Linux会尽可能利用内存做IO缓存,所以会看到内存一直在涨,如果其它进程需要分配内存时就会分配给别的进程
|
我觉得这个不像是内存泄露。
你最好逐个逐个的观察。
你最好逐个逐个的观察。