在我们的生产环境中,当我们正在执行一个.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