Solaris 进程内存使用量会增加,但不会永远增加

Solaris process memory usage increase but not forever

本文关键字:增加 永远 进程 使用量 Solaris 内存      更新时间:2023-10-16

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

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