Solaris进程内存使用量增加但不是永久增加

时间:2013-10-30 06:48:27

标签: c++ memory-leaks solaris rogue-wave

在Solaris 10上,我有一个带有奇怪行为的多线程进程。它管理复杂的C ++结构(RWTVal或RWPtr)。这些结构是根据存储在数据库中的数据构建的(使用Pro * C)。该过程每小时在数据库中查找新的信息,在内存上构建新的结构并释放旧数据。但是,每次重复此过程时,进程内存使用量会增加几MB(12 / 16MB)。进程的内存使用从100M开始直到接近1,4G。到目前为止,似乎该过程有内存泄漏。但奇怪的是,在这一点之后,这个过程就会停止继续成长。当我试图寻找内存泄漏(使用Purify工具)时,该过程不会长大,并且没有显示出明显的泄漏。有没有人发现了类似的行为或者可以解释可能发生的事情?

1 个答案:

答案 0 :(得分:1)

可能操作系统实际上并没有丢弃"释放内存时的旧内存页面,因为如果操作系统不必分配更多页面,应用程序将更快地分配更多内存。但当然只有极限。