在我們的生產環境中,當我們正在執行一個.so文件批量的一部分,我們總會遇到一個致命如下:釋放calloc失敗字節
釋放calloc失敗9088個字節 日期2013年12月7日01: 55:05
請讓我知道calloc內存問題的可能原因。
在我們的生產環境中,當我們正在執行一個.so文件批量的一部分,我們總會遇到一個致命如下:釋放calloc失敗字節
釋放calloc失敗9088個字節 日期2013年12月7日01: 55:05
請讓我知道calloc內存問題的可能原因。
也許您應該檢查'進程可以使用的最大AIX數據段數量'是如何設置的(環境變量LDR_CNTRL)。請參閱IBM Performance Tuning Guide在aix ulimit
謊言,如果它告訴你數據大小是無限的。
這是一個非常有可能的第一個地方+1 –
+1我也對此答案致敬:) –
有可能是這背後
1兩方面的原因),你沒有足夠的內存
2)釋放calloc沒有得到所要求的大小的連續內存塊。
在第一種情況下,你沒有任何選擇,但如果有第二種情況,那麼你可以打破你的一個calloc調用2.3 ..或更多的調用來獲得連續內存的小塊。
1.我們有足夠的記憶。 2.這個選項我可以嘗試。你能告訴我怎樣才能打破一個calloc。您的意見讚賞。 – kanna
calloc需要參數中的number和sizeof(元素)。因此,而不是要求一個大數字將這個數字分成兩個或兩個以上,併爲每個calloc調用calloc。例如,將'calloc(600,sizeof(int))'分解爲'calloc (200,sizeof(int)); calloc(400.sizoef(int));' –
聽起來像你用完內存。發生問題時看過內存消耗了嗎? – djf
@djf:系統中有足夠的RAM。 – kanna
@djf:這隻發生在一個特定的過程中。 – kanna