Re: Memory Management for an Array
Re: Memory Management for an Array
- Subject: Re: Memory Management for an Array
- From: Tony Romano <email@hidden>
- Date: Mon, 13 Jun 2011 09:16:50 -0700
- Thread-topic: Memory Management for an Array
Leaks is telling the line that allocated the memory. The problem maybe
what you are doing with the object allocated some where else in the code.
I would suggest you use heapshot to figure out how much your application
is growing by calling this function and looking at the code paths that
could affect the growth. In order to make the problem simpler, you may
need to create smaller actions to isolate methods that allocate memory or
you maybe looking at several candidates at once making the investigative
work more difficult. Also, remember that it take time for memory to
settle back down, it doesn't happen instantly in many cases to avoid
thrashing in heap allocations. Again, heapshot is your friend here. After
seeing a memory growth due to an action. Take a few other heapshots after
sometime(with doing any other actions) to see if the memory is trending
down. If it doesn't, you have a bona-fide growth.
Tony Romano
On 6/13/11 7:31 AM, "Bing Li" <email@hidden> wrote:
>Dear Tito, Scott and all,
>
>Thanks so much for your replies!
>
>I think the memory management in my system is much better. I just used
>Instruments to check potential leaks. To my surprise, I was still notified
>that the following method got memory-leaking although the amount was
>small.
>Could you please tell me how to fix this problem? Maybe I just ignore it?
>
>+ (NSString *)read:(NSString *)xml Path:(NSString *)xPath
>{
> // The Instruments indicated the following line got memory leaks.
>The amount of leaked memory was not large (about 400KB)
> NSXMLDocument *xmlDoc = [[NSXMLDocument alloc]
>initWithXMLString:xml
>options:NSXMLDocumentTidyXML error:NULL];
>
> NSArray *nodes = [xmlDoc nodesForXPath:xPath error:NULL];
> [xmlDoc release];
> if ([nodes count] > 0)
> {
> return [[nodes objectAtIndex:0] stringValue];
> }
> else
> {
> return @"";
> }
>}
>
>
>Best regards,
>Bing Li
>
>
>>
>> On Mon, Jun 13, 2011 at 3:07 AM, Scott Ribe
>><email@hidden>wrote:
>>
>>> On Jun 12, 2011, at 12:29 PM, Bing Li wrote:
>>>
>>> > Do you think the below method is a correct solution to manage
>>>memory? I
>>> am
>>> > not sure if the array, nodes, could leak?
>>>
>>> Really, follow the memory management rules as written and as pointed
>>>out
>>> to you before. That is how you know you're writing correct code.
>>>
>>> --
>>> Scott Ribe
>>> email@hidden
>>> http://www.elevated-dev.com/
>>> (303) 722-0567 voice
>>>
>>>
>>>
>>>
>>>
>>
>_______________________________________________
>
>Cocoa-dev mailing list (email@hidden)
>
>Please do not post admin requests or moderator comments to the list.
>Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
>Help/Unsubscribe/Update your Subscription:
>
>This email sent to email@hidden
>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden