2010-10-30 71 views
0

在我的程序中,我创建了100个线程,然后等待它们全部加入,然后再次重复此操作。Solaris中增加的prstat SIZE值是否表示内存泄漏?

在每个线程中,我创建一些内存并释放它。我相当肯定,我在这些线程中创建的所有内存都被释放了。

但是,prstat的SIZE输出和RSS输出持续增加。他们经常增加4M

这些数值表明什么?这是否意味着有一些内存泄漏?

编辑:

我的初衷是为了找出什么是SIZE & RSS列在了prstat输出的含义。此外,SIZE显示的值增加是否确认代码中存在内存泄漏?

+0

你好Jay,你可以在这里跟进你的问题吗?它目前处于一个相当令人沮丧的状态......澄清你的意思是“指示”也会有帮助。 – jlliagre 2010-11-10 09:34:55

+0

@ jilliagre,对不起,忙于其他的东西,所以无法访问该网站。现在,我已经说服了。希望它是好的。另外,我不知道谁低估了你的答案。这是迄今为止我所得到的最接近的答案。 – Jay 2010-11-16 10:31:57

+0

我很确定zvrba低估了我的回答,因为他理解你的问题中的“表示”意思是“可能是症状”,而我理解它的意思是“毫无疑问是症状”。不幸的是,通过在您的编辑中重复“注明”,您不会澄清这一点:-( – jlliagre 2010-11-19 15:24:35

回答

0

不,prstat SIZE增加并不一定表示内存泄漏。你只能猜测可能有内存泄漏。此外,使用标准Solaris malloc/free库时,释放的内存不会返回到操作系统,因此SIZE度量标准永远不会减小。你应该真的发布一个展示这个问题的示例源代码来帮助确定你是否真的遇到了内存泄漏。

-2

是的,持续增加的内存使用量表示内存泄漏。

+2

或者一个程序只是在做更多的事情,并不是所有的程序都有一个稳定的内存使用状态 - 当你停止使用内存时没有释放内存,而只是继续使用内存时,这只是一个泄漏。你不知道它是哪种情况 – alanc 2010-11-01 19:52:44

+0

@alanc:你真的读过他的程序的描述吗? – zvrba 2010-11-02 07:26:52

+0

@zvrba:开放的海报描述不足以诊断内存泄漏。 ,你不应该肯定有一个 – jlliagre 2010-11-03 10:56:25