2010-10-30 70 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